blob: bbab0e09af3baddab15b55d913fb7a80e0ecc41c [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001// SPDX-License-Identifier: GPL-2.0-only
Josh Kirschea69fed2018-12-11 16:15:08 -08002/* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303 */
4
5#include <linux/init.h>
6#include <linux/err.h>
7#include <linux/module.h>
8#include <linux/moduleparam.h>
9#include <linux/platform_device.h>
10#include <linux/bitops.h>
11#include <linux/mutex.h>
12#include <linux/of_device.h>
13#include <linux/slab.h>
14#include <sound/core.h>
15#include <sound/soc.h>
16#include <sound/soc-dapm.h>
17#include <sound/pcm.h>
18#include <sound/initval.h>
19#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020#include <sound/tlv.h>
21#include <sound/asound.h>
22#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053024#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053025#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053026#include <dsp/q6voice.h>
27#include <dsp/q6adm-v2.h>
28#include <dsp/q6asm-v2.h>
29#include <dsp/q6afe-v2.h>
30#include <dsp/q6lsm.h>
31#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080032#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053033#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053034
35#include "msm-pcm-routing-v2.h"
36#include "msm-pcm-routing-devdep.h"
37#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053038#include "msm-dolby-dap-config.h"
39#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053040
Meng Wangee084a02018-09-04 16:11:58 +080041#define DRV_NAME "msm-pcm-routing-v2"
42
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053043#ifndef CONFIG_DOLBY_DAP
44#undef DOLBY_ADM_COPP_TOPOLOGY_ID
45#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
46#endif
47
48#ifndef CONFIG_DOLBY_DS2
49#undef DS2_ADM_COPP_TOPOLOGY_ID
50#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
51#endif
52
53static struct mutex routing_lock;
54
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053055static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053056
57static int fm_switch_enable;
58static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080059static int a2dp_switch_enable;
Zhou Songcaa541d2019-02-19 18:37:47 +080060static int sco_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053061static int int0_mi2s_switch_enable;
62static int int4_mi2s_switch_enable;
63static int pri_mi2s_switch_enable;
64static int sec_mi2s_switch_enable;
65static int tert_mi2s_switch_enable;
66static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053067static int quin_mi2s_switch_enable;
Karthikeyan Manic3700752019-03-11 18:33:53 -070068static int sen_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053069static int fm_pcmrx_switch_enable;
70static int usb_switch_enable;
71static int lsm_port_index;
72static int slim0_rx_aanc_fb_port;
73static int msm_route_ec_ref_rx;
74static int msm_ec_ref_ch = 4;
Dhananjay Kumar242b5b02019-01-16 22:45:12 +053075static int msm_ec_ref_ch_downmixed = 4;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053076static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
77static int msm_ec_ref_sampling_rate = 48000;
78static uint32_t voc_session_id = ALL_SESSION_VSID;
79static int msm_route_ext_ec_ref;
80static bool is_custom_stereo_on;
81static bool is_ds2_on;
82static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053083static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080084static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053085static int msm_ec_ref_port_id;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +053086static int afe_loopback_tx_port_index;
87static int afe_loopback_tx_port_id = -1;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053088
89#define WEIGHT_0_DB 0x4000
90/* all the FEs which can support channel mixer */
91static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053092
93/* all the FES which can support channel mixer for bidirection */
94static struct msm_pcm_channel_mixer
95 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
96
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053097/* input BE for each FE */
98static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
99
100enum {
101 MADNONE,
102 MADAUDIO,
103 MADBEACON,
104 MADULTRASOUND,
105 MADSWAUDIO,
106};
107
108#define ADM_LSM_PORT_INDEX 9
109
110#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
111#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
112#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
113#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
114#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
115#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
116#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
117#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
118#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
119#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530120#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
121#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800122#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530123#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530124#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530125
126#define LSM_FUNCTION_TEXT "LSM Function"
127static const char * const lsm_port_text[] = {
128 "None",
129 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
130 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
131 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530132 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800133 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530134};
135
136struct msm_pcm_route_bdai_pp_params {
137 u16 port_id; /* AFE port ID */
138 unsigned long pp_params_config;
139 bool mute_on;
140 int latency;
141};
142
143static struct msm_pcm_route_bdai_pp_params
144 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
145 {HDMI_RX, 0, 0, 0},
146 {DISPLAY_PORT_RX, 0, 0, 0},
147};
148
149/*
150 * The be_dai_name_table is passed to HAL so that it can specify the
151 * BE ID for the BE it wants to enable based on the name. Thus there
152 * is a matching table and structure in HAL that need to be updated
153 * if any changes to these are made.
154 */
155struct msm_pcm_route_bdai_name {
156 unsigned int be_id;
157 char be_name[LPASS_BE_NAME_MAX_LENGTH];
158};
159static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
160
161static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
162 int fe_id);
163
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700164static void msm_routing_load_topology(size_t data_size, void *data);
165static void msm_routing_unload_topology(uint32_t topology_id);
166
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530167static int msm_routing_get_bit_width(unsigned int format)
168{
169 int bit_width;
170
171 switch (format) {
172 case SNDRV_PCM_FORMAT_S32_LE:
173 bit_width = 32;
174 break;
175 case SNDRV_PCM_FORMAT_S24_LE:
176 case SNDRV_PCM_FORMAT_S24_3LE:
177 bit_width = 24;
178 break;
179 case SNDRV_PCM_FORMAT_S16_LE:
180 default:
181 bit_width = 16;
182 }
183 return bit_width;
184}
185
186static bool msm_is_resample_needed(int input_sr, int output_sr)
187{
188 bool rc = false;
189
190 if (input_sr != output_sr)
191 rc = true;
192
193 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
194 (rc ? "oh yes" : "not really"),
195 input_sr, output_sr);
196
197 return rc;
198}
199
200static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
201 int channels)
202{
203 int rc = 0;
204
205 switch (topology) {
206 case SRS_TRUMEDIA_TOPOLOGY_ID:
207 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
208 msm_dts_srs_tm_init(port_id, copp_idx);
209 break;
210 case DS2_ADM_COPP_TOPOLOGY_ID:
211 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
212 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
213 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
214 is_custom_stereo_on);
215 if (rc < 0)
216 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
217 __func__, topology, port_id,
218 is_custom_stereo_on, rc);
219 break;
220 case DOLBY_ADM_COPP_TOPOLOGY_ID:
221 if (is_ds2_on) {
222 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
223 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
224 is_custom_stereo_on);
225 if (rc < 0)
226 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
227 __func__, topology, port_id, rc);
228 } else {
229 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
230 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
231 is_custom_stereo_on);
232 if (rc < 0)
233 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
234 __func__, topology, port_id, rc);
235 }
236 break;
237 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
238 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
239 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
240 if (rc < 0)
241 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
242 __func__, topology, port_id, copp_idx, rc);
243 break;
244 default:
245 /* custom topology specific feature param handlers */
246 break;
247 }
248}
249
250static void msm_pcm_routing_deinit_pp(int port_id, int topology)
251{
252 switch (topology) {
253 case SRS_TRUMEDIA_TOPOLOGY_ID:
254 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
255 msm_dts_srs_tm_deinit(port_id);
256 break;
257 case DS2_ADM_COPP_TOPOLOGY_ID:
258 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
259 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
260 msm_ds2_dap_deinit(port_id);
261 break;
262 case DOLBY_ADM_COPP_TOPOLOGY_ID:
263 if (is_ds2_on) {
264 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
265 msm_ds2_dap_deinit(port_id);
266 } else {
267 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
268 msm_dolby_dap_deinit(port_id);
269 }
270 break;
271 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
272 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
273 msm_qti_pp_asphere_deinit(port_id);
274 break;
275 default:
276 /* custom topology specific feature deinit handlers */
277 break;
278 }
279}
280
281static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
282 int path_type, int perf_mode)
283{
284 int itr = 0, rc = 0;
285
286 if ((path_type == ADM_PATH_PLAYBACK) &&
287 (perf_mode == LEGACY_PCM_MODE) &&
288 is_custom_stereo_on) {
289 for (itr = 0; itr < payload.num_copps; itr++) {
290 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
291 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
292 continue;
293 }
294
295 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
296 payload.port_id[itr],
297 payload.copp_idx[itr],
298 payload.session_id,
299 Q14_GAIN_ZERO_POINT_FIVE,
300 Q14_GAIN_ZERO_POINT_FIVE,
301 Q14_GAIN_ZERO_POINT_FIVE,
302 Q14_GAIN_ZERO_POINT_FIVE);
303 if (rc < 0)
304 pr_err("%s: err setting custom stereo\n",
305 __func__);
306 }
307 }
308}
309
310#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
311struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530312 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
313 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
314 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
315 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
316 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
317 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
318 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
319 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
320 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
321 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530322 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530323 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530324 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530325 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530326 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530327 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530328 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530329 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530330 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530331 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530332 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530333 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530334 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530335 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530336 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530337 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
338 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
339 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
340 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
341 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
342 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
343 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
344 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
345 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
346 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
347 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
348 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
349 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
350 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
351 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
352 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
353 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
354 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
355 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
356 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
357 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
358 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
359 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530360 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530361 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530362 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530363 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530364 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530365 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530366 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530367 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530368 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530369 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530370 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530371 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530372 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530373 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530374 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530375 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530376 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530377 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530378 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530379 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530380 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530381 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200382 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530383 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530384 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530385 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530386 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530387 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530388 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530389 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530390 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530391 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530392 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530393 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530394 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530395 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530396 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530397 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530398 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530399 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530400 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530401 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530402 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530403 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530404 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530405 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530406 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530407 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530408 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530409 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530410 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530411 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530412 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530413 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530414 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530415 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530416 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530417 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530418 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530419 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530420 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530421 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530422 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530423 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530424 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530425 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530426 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530427 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530428 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530429 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530430 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530431 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530432 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530433 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530434 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530435 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530436 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530437 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530438 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530439 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530440 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530441 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530442 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530443 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530444 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530445 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530446 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530447 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530448 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530449 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530450 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530451 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530452 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530453 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530454 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530455 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530456 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530457 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530458 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530459 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530460 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530461 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530462 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530463 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530464 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530465 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530466 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530467 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530468 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530469 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530470 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530471 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530472 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530473 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530474 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530475 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530476 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530477 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530478 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530479 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530480 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530481 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530482 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530483 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530484 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530485 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530486 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530487 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530488 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530489 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530490 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530491 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530492 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530493 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530494 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530495 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530496 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530497 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530498 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530499 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530500 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530501 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530502 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530503 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530504 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530505 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530506 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530507 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530508 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530509 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530510 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530511 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530512 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530513 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530514 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530515 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530516 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530517 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530518 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530519 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530520 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530521 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530522 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530523 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530524 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530525 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530526 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530527 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530528 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530529 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530530 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530531 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530532 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530533 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530534 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530535 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530536 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530537 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530538 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530539 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530540 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530541 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530542 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530543 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530544 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530545 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530546 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530547 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530548 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530549 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530550 LPASS_BE_QUIN_TDM_TX_7},
Karthikeyan Manic3700752019-03-11 18:33:53 -0700551 { AFE_PORT_ID_SENARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
552 LPASS_BE_SEN_TDM_RX_0},
553 { AFE_PORT_ID_SENARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
554 LPASS_BE_SEN_TDM_TX_0},
555 { AFE_PORT_ID_SENARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
556 LPASS_BE_SEN_TDM_RX_1},
557 { AFE_PORT_ID_SENARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
558 LPASS_BE_SEN_TDM_TX_1},
559 { AFE_PORT_ID_SENARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
560 LPASS_BE_SEN_TDM_RX_2},
561 { AFE_PORT_ID_SENARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
562 LPASS_BE_SEN_TDM_TX_2},
563 { AFE_PORT_ID_SENARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
564 LPASS_BE_SEN_TDM_RX_3},
565 { AFE_PORT_ID_SENARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
566 LPASS_BE_SEN_TDM_TX_3},
567 { AFE_PORT_ID_SENARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
568 LPASS_BE_SEN_TDM_RX_4},
569 { AFE_PORT_ID_SENARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
570 LPASS_BE_SEN_TDM_TX_4},
571 { AFE_PORT_ID_SENARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
572 LPASS_BE_SEN_TDM_RX_5},
573 { AFE_PORT_ID_SENARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
574 LPASS_BE_SEN_TDM_TX_5},
575 { AFE_PORT_ID_SENARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
576 LPASS_BE_SEN_TDM_RX_6},
577 { AFE_PORT_ID_SENARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
578 LPASS_BE_SEN_TDM_TX_6},
579 { AFE_PORT_ID_SENARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
580 LPASS_BE_SEN_TDM_RX_7},
581 { AFE_PORT_ID_SENARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
582 LPASS_BE_SEN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530583 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530584 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530585 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530587 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530588 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530589 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530590 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530591 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700592 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530593 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530594 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530595 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530596 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530597 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530598 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530599 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530600 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530601 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530602 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530603 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530604 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530605 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530606 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530607 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530608 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530609 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530610 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530611 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530612 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530613 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530614 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530615 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530616 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530617 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530618 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530619 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530620 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530621 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530622 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530623 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530624 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530625 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530626 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530627 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530628 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530629 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530630 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530631 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530632 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200633 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
634 LPASS_BE_SEN_AUXPCM_RX},
635 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
636 LPASS_BE_SEN_AUXPCM_TX},
637 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
638 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530639 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530640 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530641 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530642 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530643 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530644 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530645 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530646 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530647 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530648 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530649 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530650 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530651 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530652 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800653 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
654 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530655 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530656 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530657 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530658 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530659 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530660 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530661 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530662 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530663 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530664 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530665 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530666 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530667 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530668 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530669 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530670 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530671 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530672 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530673 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530674 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530675 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530676 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530677 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530678 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530679 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530680 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530681 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530682 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530683 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200684 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530685 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200686 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530687 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200688 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530689 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
690 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530691 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530692};
693
694/* Track ASM playback & capture sessions of DAI
695 * Track LSM listen sessions
696 */
697static struct msm_pcm_routing_fdai_data
698 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
699 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530702 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530705 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530708 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530711 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530714 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530717 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530720 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530723 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530726 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530729 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530732 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530735 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530738 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530741 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530744 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530747 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530750 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530753 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530756 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700759 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530762 /* MULTIMEDIA26 */
763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
765 /* MULTIMEDIA27 */
766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530768 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530771 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530772 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
773 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530774 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530775 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
776 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530777 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530778 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
779 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530780 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530781 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
782 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530783 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530784 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
785 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530786 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530787 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
788 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530789 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530790 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
791 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530792 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530793 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
794 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530795 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530796 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
797 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530798 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530799 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
800 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530801 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530802 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
803 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530804 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530805 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
806 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530807 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530808 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
809 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530810 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530811 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
812 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530813 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530814 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
815 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530816 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530817 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
818 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530819 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530820 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
821 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530822 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530823 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
824 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530825 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530826 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
827 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530828};
829
830static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
831 [MSM_BACKEND_DAI_MAX];
832static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
833static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
834static struct msm_pcm_stream_app_type_cfg
835 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
836
837static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
838
Florian Pfister522073c2018-09-26 15:39:15 +0200839/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530840void msm_pcm_routing_get_bedai_info(int be_idx,
841 struct msm_pcm_routing_bdai_data *be_dai)
842{
843 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
844 memcpy(be_dai, &msm_bedais[be_idx],
845 sizeof(struct msm_pcm_routing_bdai_data));
846}
847
Florian Pfister522073c2018-09-26 15:39:15 +0200848/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530849void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
850 struct msm_pcm_routing_fdai_data *fe_dai)
851{
852 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
853 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
854 sizeof(struct msm_pcm_routing_fdai_data));
855}
856
857void msm_pcm_routing_acquire_lock(void)
858{
859 mutex_lock(&routing_lock);
860}
861
862void msm_pcm_routing_release_lock(void)
863{
864 mutex_unlock(&routing_lock);
865}
866
867static int msm_pcm_routing_get_app_type_idx(int app_type)
868{
869 int idx;
870
871 pr_debug("%s: app_type: %d\n", __func__, app_type);
872 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
873 if (app_type_cfg[idx].app_type == app_type)
874 return idx;
875 }
876 pr_info("%s: App type not available, fallback to default\n", __func__);
877 return 0;
878}
879
880static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
881{
882 int idx;
883
884 pr_debug("%s: app_type: %d\n", __func__, app_type);
885 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
886 if (lsm_app_type_cfg[idx].app_type == app_type)
887 return idx;
888 }
889 pr_debug("%s: App type not available, fallback to default\n", __func__);
890 return 0;
891}
892
Surendar Karkae7507512018-07-20 15:46:54 +0530893static int get_port_id(int port_id)
894{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530895 int ret = port_id;
896
897 if (port_id == AFE_LOOPBACK_TX) {
898 /*
899 * Return afe_loopback_tx_port_id if set. Else return
900 * msm_ec_ref_port_id to maintain backward compatibility.
901 */
902 if (afe_loopback_tx_port_id != -1)
903 ret = afe_loopback_tx_port_id;
904 else
905 ret = msm_ec_ref_port_id;
906 }
907
908 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530909}
910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530911static bool is_mm_lsm_fe_id(int fe_id)
912{
913 bool rc = true;
914
915 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
916 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
917 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
918 rc = false;
919 }
920 return rc;
921}
922
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700923/*
924 * msm_pcm_routing_send_chmix_cfg:
925 * send the channel mixer command to mix the input channels
926 * into output channels.
927 *
928 * @fe_id: front end id
929 * @ip_channel_cnt: input channel count
930 * @op_channel_cnt: output channel count
931 * @ch_wght_coeff: channel weight co-efficients for channel mixing
932 * @session_type: indicates session is of type TX or RX
933 * @stream_type: indicates either Audio or Listen stream type
934 */
935int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
936 int op_channel_cnt, int *ch_wght_coeff,
937 int session_type, int stream_type)
938{
939
940 int rc = 0, idx = 0;
941 int be_index = 0, port_id;
942 unsigned int session_id = 0;
943
944 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
945 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
946 stream_type);
947 if (!is_mm_lsm_fe_id(fe_id)) {
948 /* bad ID assigned in machine driver */
949 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
950 return -EINVAL;
951 }
952
953 if (ch_wght_coeff == NULL) {
954 pr_err("%s: Null channel weightage coefficients passed\n",
955 __func__);
956 return -EINVAL;
957 }
958
959 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
960 port_id = msm_bedais[be_index].port_id;
961 if (!msm_bedais[be_index].active ||
962 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
963 continue;
964
965 session_id = fe_dai_map[fe_id][session_type].strm_id;
966
967 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
968 unsigned long copp =
969 session_copp_map[fe_id][session_type][be_index];
970 if (!test_bit(idx, &copp))
971 continue;
972 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
973 session_id, ip_channel_cnt,
974 op_channel_cnt, ch_wght_coeff,
975 session_type, stream_type);
976 if (rc < 0)
977 pr_err("%s: err setting channel mix config\n",
978 __func__);
979 }
980 }
981
982 return 0;
983}
984EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
985
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530986/**
987 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
988 * setting before use case start.
989 *
990 * @fe_id: frontend idx
991 * @type: stream direction type
992 * @params: parameters of channel mixer setting
993 *
994 * Return 0 for success
995 */
996int msm_pcm_routing_set_channel_mixer_cfg(
997 int fe_id, int type,
998 struct msm_pcm_channel_mixer *params)
999{
1000 int i, j = 0;
1001
1002 channel_mixer_v2[fe_id][type].enable = params->enable;
1003 channel_mixer_v2[fe_id][type].rule = params->rule;
1004 channel_mixer_v2[fe_id][type].input_channel =
1005 params->input_channel;
1006 channel_mixer_v2[fe_id][type].output_channel =
1007 params->output_channel;
1008 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
1009
1010 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1011 channel_mixer_v2[fe_id][type].in_ch_map[i] =
1012 params->in_ch_map[i];
1013 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1014 channel_mixer_v2[fe_id][type].out_ch_map[i] =
1015 params->out_ch_map[i];
1016
1017 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1018 for (j = 0; j < ADM_MAX_CHANNELS; j++)
1019 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
1020 params->channel_weight[i][j];
1021
1022 channel_mixer_v2[fe_id][type].override_in_ch_map =
1023 params->override_in_ch_map;
1024 channel_mixer_v2[fe_id][type].override_out_ch_map =
1025 params->override_out_ch_map;
1026
1027 return 0;
1028}
1029EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
1030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301031int msm_pcm_routing_reg_stream_app_type_cfg(
1032 int fedai_id, int session_type, int be_id,
1033 struct msm_pcm_stream_app_type_cfg *cfg_data)
1034{
1035 int ret = 0;
1036
1037 if (cfg_data == NULL) {
1038 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1039 ret = -EINVAL;
1040 goto done;
1041 }
1042
1043 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1044 __func__, fedai_id, session_type, be_id,
1045 cfg_data->app_type, cfg_data->acdb_dev_id,
1046 cfg_data->sample_rate);
1047
1048 if (!is_mm_lsm_fe_id(fedai_id)) {
1049 pr_err("%s: Invalid machine driver ID %d\n",
1050 __func__, fedai_id);
1051 ret = -EINVAL;
1052 goto done;
1053 }
1054 if (session_type != SESSION_TYPE_RX &&
1055 session_type != SESSION_TYPE_TX) {
1056 pr_err("%s: Invalid session type %d\n",
1057 __func__, session_type);
1058 ret = -EINVAL;
1059 goto done;
1060 }
1061 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1062 pr_err("%s: Received out of bounds be_id %d\n",
1063 __func__, be_id);
1064 ret = -EINVAL;
1065 goto done;
1066 }
1067
1068 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1069
1070 /*
1071 * Store the BE ID of the configuration information set as the latest so
1072 * the get mixer control knows what to return.
1073 */
1074 last_be_id_configured[fedai_id][session_type] = be_id;
1075
1076done:
1077 return ret;
1078}
1079EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1080
1081/**
1082 * msm_pcm_routing_get_stream_app_type_cfg
1083 *
1084 * Receives fedai_id, session_type, be_id, and populates app_type,
1085 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1086 * -EINVAL and does not alter passed values.
1087 *
1088 * fedai_id - Passed value, front end ID for which app type config is wanted
1089 * session_type - Passed value, session type for which app type config
1090 * is wanted
1091 * be_id - Returned value, back end device id the app type config data is for
1092 * cfg_data - Returned value, configuration data used by app type config
1093 */
1094int msm_pcm_routing_get_stream_app_type_cfg(
1095 int fedai_id, int session_type, int *bedai_id,
1096 struct msm_pcm_stream_app_type_cfg *cfg_data)
1097{
1098 int be_id;
1099 int ret = 0;
1100
1101 if (bedai_id == NULL) {
1102 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1103 ret = -EINVAL;
1104 goto done;
1105 } else if (cfg_data == NULL) {
1106 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1107 ret = -EINVAL;
1108 goto done;
1109 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1110 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1111 ret = -EINVAL;
1112 goto done;
1113 } else if (session_type != SESSION_TYPE_RX &&
1114 session_type != SESSION_TYPE_TX) {
1115 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1116 ret = -EINVAL;
1117 goto done;
1118 }
1119
1120 be_id = last_be_id_configured[fedai_id][session_type];
1121 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1122 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1123 ret = -EINVAL;
1124 goto done;
1125 }
1126
1127 *bedai_id = be_id;
1128 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1129 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1130 __func__, fedai_id, session_type, *bedai_id,
1131 cfg_data->app_type, cfg_data->acdb_dev_id,
1132 cfg_data->sample_rate);
1133done:
1134 return ret;
1135}
1136EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1137
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301138static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1139 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301140{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301141 struct list_head *ptr, *next;
1142 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301143 pr_debug("%s\n", __func__);
1144
1145 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301146 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301147
1148 cal_block = list_entry(ptr,
1149 struct cal_block_data, list);
1150
Vikram Panduranga770b8382017-09-27 12:17:36 -07001151 if (cal_utils_is_cal_stale(cal_block))
1152 continue;
1153
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301154 if (((struct audio_cal_info_adm_top *)cal_block
1155 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301156 return cal_block;
1157 }
1158 }
1159 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1160 return NULL;
1161}
1162
1163static struct cal_block_data *msm_routing_find_topology(int path,
1164 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301165 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001166 int cal_index,
1167 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301168{
1169 struct list_head *ptr, *next;
1170 struct cal_block_data *cal_block = NULL;
1171 struct audio_cal_info_adm_top *cal_info;
1172
1173 pr_debug("%s\n", __func__);
1174
1175 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301176 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301177
1178 cal_block = list_entry(ptr,
1179 struct cal_block_data, list);
1180
Vikram Panduranga770b8382017-09-27 12:17:36 -07001181 if (cal_utils_is_cal_stale(cal_block))
1182 continue;
1183
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301184 cal_info = (struct audio_cal_info_adm_top *)
1185 cal_block->cal_info;
1186 if ((cal_info->path == path) &&
1187 (cal_info->app_type == app_type) &&
1188 (cal_info->acdb_id == acdb_id)) {
1189 return cal_block;
1190 }
1191 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001192 pr_debug("%s: Can't find topology for path %d, app %d, "
1193 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1194 exact ? "fail" : "defaulting to search by path");
1195 return exact ? NULL : msm_routing_find_topology_by_path(path,
1196 cal_index);
1197}
1198
1199static int msm_routing_find_topology_on_index(int session_type, int app_type,
1200 int acdb_dev_id, int idx,
1201 bool exact)
1202{
1203 int topology = -EINVAL;
1204 struct cal_block_data *cal_block = NULL;
1205
1206 mutex_lock(&cal_data[idx]->lock);
1207 cal_block = msm_routing_find_topology(session_type, app_type,
1208 acdb_dev_id, idx, exact);
1209 if (cal_block != NULL) {
1210 topology = ((struct audio_cal_info_adm_top *)
1211 cal_block->cal_info)->topology;
1212 }
1213 mutex_unlock(&cal_data[idx]->lock);
1214 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301215}
1216
Vikram Panduranga770b8382017-09-27 12:17:36 -07001217/*
1218 * Retrieving cal_block will mark cal_block as stale.
1219 * Hence it cannot be reused or resent unless the flag
1220 * is reset.
1221 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301222static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1223 int be_id)
1224{
1225 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301226 int app_type = 0, acdb_dev_id = 0;
1227
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301228 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1229 __func__, fedai_id, session_type, be_id);
1230
1231 if (cal_data == NULL)
1232 goto done;
1233
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301234 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1235 acdb_dev_id =
1236 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1237
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001238 pr_debug("%s: Check for exact LSM topology\n", __func__);
1239 topology = msm_routing_find_topology_on_index(session_type,
1240 app_type,
1241 acdb_dev_id,
1242 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1243 true /*exact*/);
1244 if (topology < 0) {
1245 pr_debug("%s: Check for compatible topology\n", __func__);
1246 topology = msm_routing_find_topology_on_index(session_type,
1247 app_type,
1248 acdb_dev_id,
1249 ADM_TOPOLOGY_CAL_TYPE_IDX,
1250 false /*exact*/);
1251 if (topology < 0)
1252 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301253 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301254done:
1255 pr_debug("%s: Using topology %d\n", __func__, topology);
1256 return topology;
1257}
1258
1259static uint8_t is_be_dai_extproc(int be_dai)
1260{
1261 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1262 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1263 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1264 return 1;
1265 else
1266 return 0;
1267}
1268
1269static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1270 int path_type, int perf_mode,
1271 uint32_t passthr_mode)
1272{
1273 int i, port_type, j, num_copps = 0;
1274 struct route_payload payload;
1275
1276 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1277 path_type == ADM_PATH_COMPRESSED_RX) ?
1278 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1279
1280 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1281 if (!is_be_dai_extproc(i) &&
1282 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1283 (msm_bedais[i].active) &&
1284 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301285 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301286 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1287 unsigned long copp =
1288 session_copp_map[fedai_id][sess_type][i];
1289 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301290 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301291 payload.copp_idx[num_copps] = j;
1292 payload.app_type[num_copps] =
1293 fe_dai_app_type_cfg
1294 [fedai_id][sess_type][i]
1295 .app_type;
1296 payload.acdb_dev_id[num_copps] =
1297 fe_dai_app_type_cfg
1298 [fedai_id][sess_type][i]
1299 .acdb_dev_id;
1300 payload.sample_rate[num_copps] =
1301 fe_dai_app_type_cfg
1302 [fedai_id][sess_type][i]
1303 .sample_rate;
1304 num_copps++;
1305 }
1306 }
1307 }
1308 }
1309
1310 if (num_copps) {
1311 payload.num_copps = num_copps;
1312 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1313 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1314 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1315 }
1316}
1317
1318void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1319 int stream_type)
1320{
1321 int i, session_type, path_type, port_type;
1322 u32 mode = 0;
1323
1324 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1325 /* bad ID assigned in machine driver */
1326 pr_err("%s: bad MM ID\n", __func__);
1327 return;
1328 }
1329
1330 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1331 session_type = SESSION_TYPE_RX;
1332 path_type = ADM_PATH_PLAYBACK;
1333 port_type = MSM_AFE_PORT_TYPE_RX;
1334 } else {
1335 session_type = SESSION_TYPE_TX;
1336 path_type = ADM_PATH_LIVE_REC;
1337 port_type = MSM_AFE_PORT_TYPE_TX;
1338 }
1339
1340 mutex_lock(&routing_lock);
1341
1342 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1343 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1344 if (!is_be_dai_extproc(i) &&
1345 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1346 (msm_bedais[i].active) &&
1347 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1348 mode = afe_get_port_type(msm_bedais[i].port_id);
1349 adm_connect_afe_port(mode, dspst_id,
1350 msm_bedais[i].port_id);
1351 break;
1352 }
1353 }
1354 mutex_unlock(&routing_lock);
1355}
1356
1357static bool route_check_fe_id_adm_support(int fe_id)
1358{
1359 bool rc = true;
1360
1361 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1362 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1363 /* fe id is listen while port is set to afe */
1364 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1365 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1366 __func__, fe_id, lsm_port_index);
1367 rc = false;
1368 }
1369 }
1370
1371 return rc;
1372}
1373
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001374/*
1375 * msm_pcm_routing_get_pp_ch_cnt:
1376 * Read the processed channel count
1377 *
1378 * @fe_id: Front end ID
1379 * @session_type: Inidicates RX or TX session type
1380 */
1381int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1382{
1383 struct msm_pcm_stream_app_type_cfg cfg_data;
1384 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301385 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001386
1387 memset(&cfg_data, 0, sizeof(cfg_data));
1388
1389 if (!is_mm_lsm_fe_id(fe_id)) {
1390 pr_err("%s: bad MM ID\n", __func__);
1391 return -EINVAL;
1392 }
1393
1394 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1395 &be_id, &cfg_data);
1396 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301397 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001398 return ret;
1399 }
1400
1401 app_type = cfg_data.app_type;
1402 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1403 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1404}
1405EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1406
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301407int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1408 int dspst_id, int stream_type,
1409 uint32_t passthr_mode)
1410{
1411 int i, j, session_type, path_type, port_type, topology;
1412 int num_copps = 0;
1413 struct route_payload payload;
1414 u32 channels, sample_rate;
1415 u16 bit_width = 16;
1416 bool is_lsm;
1417
1418 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1419 __func__, fe_id, perf_mode, dspst_id,
1420 stream_type, passthr_mode);
1421 if (!is_mm_lsm_fe_id(fe_id)) {
1422 /* bad ID assigned in machine driver */
1423 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1424 return -EINVAL;
1425 }
1426
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301427 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1428 session_type = SESSION_TYPE_RX;
1429 if (passthr_mode != LEGACY_PCM)
1430 path_type = ADM_PATH_COMPRESSED_RX;
1431 else
1432 path_type = ADM_PATH_PLAYBACK;
1433 port_type = MSM_AFE_PORT_TYPE_RX;
1434 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1435 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301436 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301437 path_type = ADM_PATH_COMPRESSED_TX;
1438 else
1439 path_type = ADM_PATH_LIVE_REC;
1440 port_type = MSM_AFE_PORT_TYPE_TX;
1441 } else {
1442 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1443 return -EINVAL;
1444 }
1445
1446 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1447 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1448 mutex_lock(&routing_lock);
1449
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301450 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301451 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1452 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1453 if (!route_check_fe_id_adm_support(fe_id)) {
1454 /* ignore adm open if not supported for fe_id */
1455 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1456 mutex_unlock(&routing_lock);
1457 return 0;
1458 }
1459
1460 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301461 /* re-enable EQ if active */
1462 msm_qti_pp_send_eq_values(fe_id);
1463 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301464 if (!is_be_dai_extproc(i) &&
1465 (afe_get_port_type(msm_bedais[i].port_id) ==
1466 port_type) &&
1467 (msm_bedais[i].active) &&
1468 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1469 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301470 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301471
1472 /*
1473 * check if ADM needs to be configured with different
1474 * channel mapping than backend
1475 */
1476 if (!msm_bedais[i].adm_override_ch)
1477 channels = msm_bedais[i].channel;
1478 else
1479 channels = msm_bedais[i].adm_override_ch;
1480
1481 bit_width = msm_routing_get_bit_width(
1482 msm_bedais[i].format);
1483 app_type =
1484 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1485 if (app_type && is_lsm) {
1486 app_type_idx =
1487 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1488 sample_rate =
1489 fe_dai_app_type_cfg[fe_id][session_type][i]
1490 .sample_rate;
1491 bit_width =
1492 lsm_app_type_cfg[app_type_idx].bit_width;
1493 } else if (app_type) {
1494 app_type_idx =
1495 msm_pcm_routing_get_app_type_idx(
1496 app_type);
1497 sample_rate =
1498 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1499 bit_width =
1500 app_type_cfg[app_type_idx].bit_width;
1501 } else {
1502 sample_rate = msm_bedais[i].sample_rate;
1503 }
1504 acdb_dev_id =
1505 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1506 topology = msm_routing_get_adm_topology(fe_id,
1507 session_type,
1508 i);
1509 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1510 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001511 COMPRESSED_PASSTHROUGH_GEN)
1512 || (passthr_mode ==
1513 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301514 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1515 pr_debug("%s: Before adm open topology %d\n", __func__,
1516 topology);
1517
1518 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301519 adm_open(port_id, path_type, sample_rate,
1520 channels, topology, perf_mode,
1521 bit_width, app_type, acdb_dev_id,
1522 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301523 if ((copp_idx < 0) ||
1524 (copp_idx >= MAX_COPPS_PER_PORT)) {
1525 pr_err("%s:adm open failed coppid:%d\n",
1526 __func__, copp_idx);
1527 mutex_unlock(&routing_lock);
1528 return -EINVAL;
1529 }
1530 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1531 __func__, fe_id, session_type, i);
1532 set_bit(copp_idx,
1533 &session_copp_map[fe_id][session_type][i]);
1534
1535 if (msm_is_resample_needed(
1536 sample_rate,
1537 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301538 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301539 msm_bedais[i].sample_rate);
1540
1541 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1542 unsigned long copp =
1543 session_copp_map[fe_id][session_type][i];
1544 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301545 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301546 payload.copp_idx[num_copps] = j;
1547 payload.app_type[num_copps] =
1548 fe_dai_app_type_cfg
1549 [fe_id][session_type][i]
1550 .app_type;
1551 payload.acdb_dev_id[num_copps] =
1552 fe_dai_app_type_cfg
1553 [fe_id][session_type][i]
1554 .acdb_dev_id;
1555 payload.sample_rate[num_copps] =
1556 fe_dai_app_type_cfg
1557 [fe_id][session_type][i]
1558 .sample_rate;
1559 num_copps++;
1560 }
1561 }
1562 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001563 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301564 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301565 msm_routing_send_device_pp_params(port_id,
1566 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301567 }
1568 }
1569 if (num_copps) {
1570 payload.num_copps = num_copps;
1571 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1572 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1573 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1574 }
1575 mutex_unlock(&routing_lock);
1576 return 0;
1577}
1578
1579static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1580{
1581 u32 session_id;
1582
1583 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301584 case MSM_FRONTEND_DAI_QCHAT:
1585 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1586 break;
1587 case MSM_FRONTEND_DAI_VOIP:
1588 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1589 break;
1590 case MSM_FRONTEND_DAI_VOICEMMODE1:
1591 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1592 break;
1593 case MSM_FRONTEND_DAI_VOICEMMODE2:
1594 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1595 break;
1596 default:
1597 session_id = 0;
1598 }
1599
1600 pr_debug("%s session_id 0x%x", __func__, session_id);
1601 return session_id;
1602}
1603
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301604static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1605 int dspst_id, int stream_type)
1606{
1607 int copp_idx = 0;
1608 int sess_type = 0;
1609 int j = 0, be_id = 0;
1610 int ret = 0;
1611
1612 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1613 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1614 return 0;
1615 }
1616
1617 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1618 sess_type = SESSION_TYPE_RX;
1619 else
1620 sess_type = SESSION_TYPE_TX;
1621
1622 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1623 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1624 __func__, fe_id, sess_type);
1625 return 0;
1626 }
1627
1628 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1629 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1630 channel_mixer_v2[fe_id][sess_type].input_channel;
1631
1632 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1633 __func__, sess_type, fe_id,
1634 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1635 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1636 msm_bedais[be_id].active);
1637
1638 if ((msm_bedais[be_id].active) &&
1639 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1640 unsigned long copp =
1641 session_copp_map[fe_id][sess_type][be_id];
1642 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1643 if (test_bit(j, &copp)) {
1644 copp_idx = j;
1645 break;
1646 }
1647 }
1648
1649 ret = adm_programable_channel_mixer(
1650 msm_bedais[be_id].port_id,
1651 copp_idx, dspst_id, sess_type,
1652 &channel_mixer_v2[fe_id][sess_type], 0);
1653 }
1654
1655 return ret;
1656}
1657
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301658static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1659 int dspst_id, int stream_type)
1660{
1661 int copp_idx = 0;
1662 int sess_type = 0;
1663 int i = 0, j = 0, be_id;
1664 int ret = 0;
1665
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301666 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1667 dspst_id, stream_type);
1668 if (ret) {
1669 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1670 fe_id);
1671 return ret;
1672 }
1673
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301674 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1675 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1676 return 0;
1677 }
1678
1679 if (!(channel_mixer[fe_id].enable)) {
1680 pr_debug("%s: channel mixer not enabled for FE %d\n",
1681 __func__, fe_id);
1682 return 0;
1683 }
1684
1685 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1686 sess_type = SESSION_TYPE_RX;
1687 else
1688 sess_type = SESSION_TYPE_TX;
1689
1690 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1691 ++i) {
1692 be_id = channel_input[fe_id][i] - 1;
1693 channel_mixer[fe_id].input_channels[i] =
1694 msm_bedais[be_id].channel;
1695
1696 if ((msm_bedais[be_id].active) &&
1697 test_bit(fe_id,
1698 &msm_bedais[be_id].fe_sessions[0])) {
1699 unsigned long copp =
1700 session_copp_map[fe_id][sess_type][be_id];
1701 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1702 if (test_bit(j, &copp)) {
1703 copp_idx = j;
1704 break;
1705 }
1706 }
1707
1708 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1709 __func__,
1710 fe_id, be_id, msm_bedais[be_id].channel,
1711 copp_idx);
1712 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001713 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301714 copp_idx, dspst_id, sess_type,
1715 channel_mixer + fe_id, i);
1716 }
1717 }
1718
1719 return ret;
1720}
1721
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301722/**
1723 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1724 * setting during runtime.
1725 *
1726 * @be_id: backend index
1727 * @session_id: session index
1728 * @session_type: session type
1729 * @params: parameters for channel mixer
1730 *
1731 * Retuen: 0 for success, else error
1732 */
1733int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1734 int session_type,
1735 struct msm_pcm_channel_mixer *params)
1736{
1737 int rc = 0;
1738 int port_id, copp_idx = 0;
1739
1740 be_id--;
1741 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1742 pr_err("%s: invalid backend id %d\n", __func__,
1743 be_id);
1744 return -EINVAL;
1745 }
1746
1747 port_id = msm_bedais[be_id].port_id;
1748 copp_idx = adm_get_default_copp_idx(port_id);
1749 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1750 __func__, port_id, copp_idx, session_id);
1751
1752 if ((params->input_channel < 0) ||
1753 (params->input_channel > ADM_MAX_CHANNELS)) {
1754 pr_err("%s: invalid input channel %d\n", __func__,
1755 params->input_channel);
1756 return -EINVAL;
1757 }
1758
1759 if ((params->output_channel < 0) ||
1760 (params->output_channel > ADM_MAX_CHANNELS)) {
1761 pr_err("%s: invalid output channel %d\n", __func__,
1762 params->output_channel);
1763 return -EINVAL;
1764 }
1765
1766 params->input_channels[0] = params->input_channel;
1767
1768 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1769 __func__, session_type,
1770 params->override_in_ch_map,
1771 params->override_out_ch_map,
1772 msm_bedais[be_id].active);
1773
1774 rc = adm_programable_channel_mixer(port_id,
1775 copp_idx,
1776 session_id,
1777 session_type,
1778 params,
1779 0);
1780 if (rc) {
1781 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1782 rc = -EINVAL;
1783 }
1784 return rc;
1785}
1786EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1787
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301788int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1789 int dspst_id, int stream_type)
1790{
1791 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1792 struct route_payload payload;
1793 u32 channels, sample_rate;
1794 uint16_t bits_per_sample = 16;
1795 uint32_t passthr_mode = LEGACY_PCM;
1796 int ret = 0;
1797
1798 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1799 /* bad ID assigned in machine driver */
1800 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1801 return -EINVAL;
1802 }
1803
1804 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1805 session_type = SESSION_TYPE_RX;
1806 path_type = ADM_PATH_PLAYBACK;
1807 port_type = MSM_AFE_PORT_TYPE_RX;
1808 } else {
1809 session_type = SESSION_TYPE_TX;
1810 path_type = ADM_PATH_LIVE_REC;
1811 port_type = MSM_AFE_PORT_TYPE_TX;
1812 }
1813
1814 mutex_lock(&routing_lock);
1815
1816 payload.num_copps = 0; /* only RX needs to use payload */
1817 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1818 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301819 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301820
1821 /* re-enable EQ if active */
1822 msm_qti_pp_send_eq_values(fedai_id);
1823 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1824 if (!is_be_dai_extproc(i) &&
1825 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1826 (msm_bedais[i].active) &&
1827 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1828 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301829 int port_id = get_port_id(msm_bedais[i].port_id);
1830
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301831 /*
1832 * check if ADM needs to be configured with different
1833 * channel mapping than backend
1834 */
1835 if (!msm_bedais[i].adm_override_ch)
1836 channels = msm_bedais[i].channel;
1837 else
1838 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301839
1840 bits_per_sample = msm_routing_get_bit_width(
1841 msm_bedais[i].format);
1842
1843 app_type =
1844 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1845 if (app_type) {
1846 app_type_idx =
1847 msm_pcm_routing_get_app_type_idx(app_type);
1848 sample_rate =
1849 fe_dai_app_type_cfg[fedai_id][session_type][i]
1850 .sample_rate;
1851 bits_per_sample =
1852 app_type_cfg[app_type_idx].bit_width;
1853 } else
1854 sample_rate = msm_bedais[i].sample_rate;
1855
1856 acdb_dev_id =
1857 fe_dai_app_type_cfg[fedai_id][session_type][i]
1858 .acdb_dev_id;
1859 topology = msm_routing_get_adm_topology(fedai_id,
1860 session_type,
1861 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301862 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301863 sample_rate, channels, topology,
1864 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301865 app_type, acdb_dev_id,
1866 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301867 if ((copp_idx < 0) ||
1868 (copp_idx >= MAX_COPPS_PER_PORT)) {
1869 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001870 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301871 mutex_unlock(&routing_lock);
1872 return -EINVAL;
1873 }
1874 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1875 __func__, fedai_id, session_type, i);
1876 set_bit(copp_idx,
1877 &session_copp_map[fedai_id][session_type][i]);
1878
1879 if (msm_is_resample_needed(
1880 sample_rate,
1881 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301882 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301883 msm_bedais[i].sample_rate);
1884
1885 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1886 unsigned long copp =
1887 session_copp_map[fedai_id][session_type][i];
1888 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301889 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301890 payload.copp_idx[num_copps] = j;
1891 payload.app_type[num_copps] =
1892 fe_dai_app_type_cfg
1893 [fedai_id][session_type]
1894 [i].app_type;
1895 payload.acdb_dev_id[num_copps] =
1896 fe_dai_app_type_cfg
1897 [fedai_id][session_type]
1898 [i].acdb_dev_id;
1899 payload.sample_rate[num_copps] =
1900 fe_dai_app_type_cfg
1901 [fedai_id][session_type]
1902 [i].sample_rate;
1903 num_copps++;
1904 }
1905 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301906 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301907 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1908 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301909 }
1910 }
1911 if (num_copps) {
1912 payload.num_copps = num_copps;
1913 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1914 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1915 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1916 }
1917
1918 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1919 dspst_id, stream_type);
1920 mutex_unlock(&routing_lock);
1921 return ret;
1922}
1923
1924int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1925 int dspst_id, int stream_type,
1926 struct msm_pcm_routing_evt event_info)
1927{
1928 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1929 stream_type)) {
1930 pr_err("%s: failed to reg phy stream\n", __func__);
1931 return -EINVAL;
1932 }
1933
1934 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1935 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1936 else
1937 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1938 return 0;
1939}
1940
1941void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1942{
Surendar Karkae7507512018-07-20 15:46:54 +05301943 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301944 struct msm_pcm_routing_fdai_data *fdai;
1945
1946 if (!is_mm_lsm_fe_id(fedai_id)) {
1947 /* bad ID assigned in machine driver */
1948 pr_err("%s: bad MM ID\n", __func__);
1949 return;
1950 }
1951
1952 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1953 port_type = MSM_AFE_PORT_TYPE_RX;
1954 session_type = SESSION_TYPE_RX;
1955 path_type = ADM_PATH_PLAYBACK;
1956 } else {
1957 port_type = MSM_AFE_PORT_TYPE_TX;
1958 session_type = SESSION_TYPE_TX;
1959 path_type = ADM_PATH_LIVE_REC;
1960 }
1961
1962 mutex_lock(&routing_lock);
1963 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1964 if (!is_be_dai_extproc(i) &&
1965 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1966 (msm_bedais[i].active) &&
1967 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1968 int idx;
1969 unsigned long copp =
1970 session_copp_map[fedai_id][session_type][i];
1971 fdai = &fe_dai_map[fedai_id][session_type];
1972
1973 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1974 if (test_bit(idx, &copp))
1975 break;
1976
1977 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1978 pr_debug("%s: copp idx is invalid, exiting\n",
1979 __func__);
1980 continue;
1981 }
Surendar Karkae7507512018-07-20 15:46:54 +05301982 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301983 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301984 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001985 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301986 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301987 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1988 __func__, copp, fedai_id, session_type, i);
1989 clear_bit(idx,
1990 &session_copp_map[fedai_id][session_type][i]);
1991 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1992 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1993 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301994 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301995 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301996 }
1997 }
1998
1999 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2000 fe_dai_map[fedai_id][session_type].be_srate = 0;
2001 mutex_unlock(&routing_lock);
2002}
2003
2004/* Check if FE/BE route is set */
2005static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2006{
2007 bool rc = false;
2008
2009 if (!is_mm_lsm_fe_id(fe_id)) {
2010 /* recheck FE ID in the mixer control defined in this file */
2011 pr_err("%s: bad MM ID\n", __func__);
2012 return rc;
2013 }
2014
2015 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2016 rc = true;
2017
2018 return rc;
2019}
2020
2021static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2022{
2023 int session_type, path_type, topology;
2024 u32 channels, sample_rate;
2025 uint16_t bits_per_sample = 16;
2026 struct msm_pcm_routing_fdai_data *fdai;
2027 uint32_t passthr_mode;
2028 bool is_lsm;
2029
2030 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2031
2032 if (!is_mm_lsm_fe_id(val)) {
2033 /* recheck FE ID in the mixer control defined in this file */
2034 pr_err("%s: bad MM ID\n", __func__);
2035 return;
2036 }
2037
2038 if (!route_check_fe_id_adm_support(val)) {
2039 /* ignore adm open if not supported for fe_id */
2040 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002041 if (set)
2042 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2043 else
2044 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302045 return;
2046 }
2047
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302048 session_type =
2049 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2050 SESSION_TYPE_RX : SESSION_TYPE_TX;
2051 fdai = &fe_dai_map[val][session_type];
2052 passthr_mode = fdai->passthr_mode;
2053 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302054 if (passthr_mode != LEGACY_PCM)
2055 path_type = ADM_PATH_COMPRESSED_RX;
2056 else
2057 path_type = ADM_PATH_PLAYBACK;
2058 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002059 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302060 path_type = ADM_PATH_COMPRESSED_TX;
2061 else
2062 path_type = ADM_PATH_LIVE_REC;
2063 }
2064 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2065 (val <= MSM_FRONTEND_DAI_LSM8);
2066
2067 mutex_lock(&routing_lock);
2068 if (set) {
2069 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2070 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2071 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2072 voc_start_playback(set, msm_bedais[reg].port_id);
2073
2074 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302075 if (msm_bedais[reg].active && fdai->strm_id !=
2076 INVALID_SESSION) {
2077 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302078 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302079 /*
2080 * check if ADM needs to be configured with different
2081 * channel mapping than backend
2082 */
2083 if (!msm_bedais[reg].adm_override_ch)
2084 channels = msm_bedais[reg].channel;
2085 else
2086 channels = msm_bedais[reg].adm_override_ch;
2087 if (session_type == SESSION_TYPE_TX &&
2088 fdai->be_srate &&
2089 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2090 pr_debug("%s: flush strm %d diff BE rates\n",
2091 __func__, fdai->strm_id);
2092
2093 if (fdai->event_info.event_func)
2094 fdai->event_info.event_func(
2095 MSM_PCM_RT_EVT_BUF_RECFG,
2096 fdai->event_info.priv_data);
2097 fdai->be_srate = 0; /* might not need it */
2098 }
2099
2100 bits_per_sample = msm_routing_get_bit_width(
2101 msm_bedais[reg].format);
2102
2103 app_type =
2104 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2105 if (app_type && is_lsm) {
2106 app_type_idx =
2107 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2108 sample_rate =
2109 fe_dai_app_type_cfg[val][session_type][reg]
2110 .sample_rate;
2111 bits_per_sample =
2112 lsm_app_type_cfg[app_type_idx].bit_width;
2113 } else if (app_type) {
2114 app_type_idx =
2115 msm_pcm_routing_get_app_type_idx(app_type);
2116 sample_rate =
2117 fe_dai_app_type_cfg[val][session_type][reg]
2118 .sample_rate;
2119 bits_per_sample =
2120 app_type_cfg[app_type_idx].bit_width;
2121 } else
2122 sample_rate = msm_bedais[reg].sample_rate;
2123
2124 topology = msm_routing_get_adm_topology(val,
2125 session_type,
2126 reg);
2127 acdb_dev_id =
2128 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302129 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302130 sample_rate, channels, topology,
2131 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302132 app_type, acdb_dev_id,
2133 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302134 if ((copp_idx < 0) ||
2135 (copp_idx >= MAX_COPPS_PER_PORT)) {
2136 pr_err("%s: adm open failed\n", __func__);
2137 mutex_unlock(&routing_lock);
2138 return;
2139 }
2140 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2141 __func__, val, session_type, reg);
2142 set_bit(copp_idx,
2143 &session_copp_map[val][session_type][reg]);
2144
2145 if (msm_is_resample_needed(
2146 sample_rate,
2147 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302148 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302149 msm_bedais[reg].sample_rate);
2150
2151 if (session_type == SESSION_TYPE_RX &&
2152 fdai->event_info.event_func)
2153 fdai->event_info.event_func(
2154 MSM_PCM_RT_EVT_DEVSWITCH,
2155 fdai->event_info.priv_data);
2156
2157 msm_pcm_routing_build_matrix(val, session_type,
2158 path_type,
2159 fdai->perf_mode,
2160 passthr_mode);
2161 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2162 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302163 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2164 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302165 }
2166 } else {
2167 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2168 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2169 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2170 voc_start_playback(set, msm_bedais[reg].port_id);
2171 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302172 if (msm_bedais[reg].active && fdai->strm_id !=
2173 INVALID_SESSION) {
2174 int idx;
2175 int port_id;
2176 unsigned long copp =
2177 session_copp_map[val][session_type][reg];
2178 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2179 if (test_bit(idx, &copp))
2180 break;
2181
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002182 if (idx >= MAX_COPPS_PER_PORT) {
2183 pr_debug("%s: copp idx is invalid, exiting\n",
2184 __func__);
2185 mutex_unlock(&routing_lock);
2186 return;
2187 }
Surendar Karkae7507512018-07-20 15:46:54 +05302188 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302189 topology = adm_get_topology_for_port_copp_idx(port_id,
2190 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002191 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302192 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302193 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2194 __func__, copp, val, session_type, reg,
2195 topology);
2196 clear_bit(idx,
2197 &session_copp_map[val][session_type][reg]);
2198 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2199 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2200 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2201 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302202 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302203 msm_pcm_routing_build_matrix(val, session_type,
2204 path_type,
2205 fdai->perf_mode,
2206 passthr_mode);
2207 }
2208 }
2209 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2210 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2211 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2212
2213 mutex_unlock(&routing_lock);
2214}
2215
2216static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2217 struct snd_ctl_elem_value *ucontrol)
2218{
2219 struct soc_mixer_control *mc =
2220 (struct soc_mixer_control *)kcontrol->private_value;
2221
Meng Wang05d5e9a2018-03-28 16:45:03 +08002222 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302223 ucontrol->value.integer.value[0] = 1;
2224 else
2225 ucontrol->value.integer.value[0] = 0;
2226
Meng Wang05d5e9a2018-03-28 16:45:03 +08002227 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302228 ucontrol->value.integer.value[0]);
2229
2230 return 0;
2231}
2232
2233static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2234 struct snd_ctl_elem_value *ucontrol)
2235{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302236 struct snd_soc_dapm_widget *widget =
2237 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302238 struct soc_mixer_control *mc =
2239 (struct soc_mixer_control *)kcontrol->private_value;
2240 struct snd_soc_dapm_update *update = NULL;
2241
2242 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002243 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2244 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302245 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2246 update);
2247 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002248 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2249 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302250 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2251 update);
2252 }
2253
2254 return 1;
2255}
2256
2257static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2258 struct snd_ctl_elem_value *ucontrol)
2259{
2260 struct soc_mixer_control *mc =
2261 (struct soc_mixer_control *)kcontrol->private_value;
2262
Meng Wang05d5e9a2018-03-28 16:45:03 +08002263 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302264 ucontrol->value.integer.value[0] = 1;
2265 else
2266 ucontrol->value.integer.value[0] = 0;
2267
Meng Wang05d5e9a2018-03-28 16:45:03 +08002268 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302269 ucontrol->value.integer.value[0]);
2270
2271 return 0;
2272}
2273
2274static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2275 struct snd_ctl_elem_value *ucontrol)
2276{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302277 struct snd_soc_dapm_widget *widget =
2278 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302279 struct soc_mixer_control *mc =
2280 (struct soc_mixer_control *)kcontrol->private_value;
2281 struct snd_soc_dapm_update *update = NULL;
2282
Meng Wang05d5e9a2018-03-28 16:45:03 +08002283 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302284 ucontrol->value.integer.value[0]);
2285
2286 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002287 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2288 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302289 snd_soc_dapm_mixer_update_power(widget->dapm,
2290 kcontrol, 1, update);
2291 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002292 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2293 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302294 snd_soc_dapm_mixer_update_power(widget->dapm,
2295 kcontrol, 0, update);
2296 }
2297
2298 return 1;
2299}
2300
2301static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2302{
2303 u32 session_id = 0;
2304 u16 path_type;
2305 struct media_format_info voc_be_media_format;
2306
2307 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2308
2309 session_id = msm_pcm_routing_get_voc_sessionid(val);
2310
2311 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2312 __func__, val, session_id);
2313
2314 mutex_lock(&routing_lock);
2315
2316 if (set)
2317 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2318 else
2319 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2320
2321 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2322 afe_get_port_type(msm_bedais[reg].port_id) ==
2323 MSM_AFE_PORT_TYPE_RX) {
2324 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2325 __func__, set, msm_bedais[reg].port_id);
2326 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2327 }
2328
2329 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2330 MSM_AFE_PORT_TYPE_RX)
2331 path_type = RX_PATH;
2332 else
2333 path_type = TX_PATH;
2334
2335 if (set) {
2336 if (msm_bedais[reg].active) {
2337 voc_set_route_flag(session_id, path_type, 1);
2338
2339 memset(&voc_be_media_format, 0,
2340 sizeof(struct media_format_info));
2341
2342 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2343 voc_be_media_format.num_channels =
2344 msm_bedais[reg].channel;
2345 voc_be_media_format.sample_rate =
2346 msm_bedais[reg].sample_rate;
2347 voc_be_media_format.bits_per_sample =
2348 msm_bedais[reg].format;
2349 /* Defaulting this to 1 for voice call usecases */
2350 voc_be_media_format.channel_mapping[0] = 1;
2351
2352 voc_set_device_config(session_id, path_type,
2353 &voc_be_media_format);
2354
2355 if (voc_get_route_flag(session_id, TX_PATH) &&
2356 voc_get_route_flag(session_id, RX_PATH))
2357 voc_enable_device(session_id);
2358 } else {
2359 pr_debug("%s BE is not active\n", __func__);
2360 }
2361 } else {
2362 voc_set_route_flag(session_id, path_type, 0);
2363 voc_disable_device(session_id);
2364 }
2365
2366 mutex_unlock(&routing_lock);
2367
2368}
2369
2370static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2371 struct snd_ctl_elem_value *ucontrol)
2372{
2373 struct soc_mixer_control *mc =
2374 (struct soc_mixer_control *)kcontrol->private_value;
2375
2376 mutex_lock(&routing_lock);
2377
Meng Wang05d5e9a2018-03-28 16:45:03 +08002378 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302379 ucontrol->value.integer.value[0] = 1;
2380 else
2381 ucontrol->value.integer.value[0] = 0;
2382
2383 mutex_unlock(&routing_lock);
2384
Meng Wang05d5e9a2018-03-28 16:45:03 +08002385 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302386 ucontrol->value.integer.value[0]);
2387
2388 return 0;
2389}
2390
2391static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2392 struct snd_ctl_elem_value *ucontrol)
2393{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302394 struct snd_soc_dapm_widget *widget =
2395 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302396 struct soc_mixer_control *mc =
2397 (struct soc_mixer_control *)kcontrol->private_value;
2398 struct snd_soc_dapm_update *update = NULL;
2399
2400 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002401 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302402 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2403 update);
2404 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002405 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302406 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2407 update);
2408 }
2409
2410 return 1;
2411}
2412
2413static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2414 struct snd_ctl_elem_value *ucontrol)
2415{
2416 struct soc_mixer_control *mc =
2417 (struct soc_mixer_control *)kcontrol->private_value;
2418
2419 mutex_lock(&routing_lock);
2420
Meng Wang05d5e9a2018-03-28 16:45:03 +08002421 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302422 ucontrol->value.integer.value[0] = 1;
2423 else
2424 ucontrol->value.integer.value[0] = 0;
2425
2426 mutex_unlock(&routing_lock);
2427
Meng Wang05d5e9a2018-03-28 16:45:03 +08002428 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302429 ucontrol->value.integer.value[0]);
2430
2431 return 0;
2432}
2433
2434static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2435 struct snd_ctl_elem_value *ucontrol)
2436{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302437 struct snd_soc_dapm_widget *widget =
2438 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302439 struct soc_mixer_control *mc =
2440 (struct soc_mixer_control *)kcontrol->private_value;
2441 struct snd_soc_dapm_update *update = NULL;
2442
2443 if (ucontrol->value.integer.value[0]) {
2444 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002445 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302446 mutex_unlock(&routing_lock);
2447
2448 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2449 update);
2450 } else {
2451 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002452 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302453 mutex_unlock(&routing_lock);
2454
2455 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2456 update);
2457 }
2458
Meng Wang05d5e9a2018-03-28 16:45:03 +08002459 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302460 ucontrol->value.integer.value[0]);
2461
2462 return 1;
2463}
2464
2465/*
2466 * Return the mapping between port ID and backend ID to enable the AFE callback
2467 * to determine the acdb_dev_id from the port id
2468 */
2469int msm_pcm_get_be_id_from_port_id(int port_id)
2470{
2471 int i;
2472 int be_id = -EINVAL;
2473
2474 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2475 if (msm_bedais[i].port_id == port_id) {
2476 be_id = i;
2477 break;
2478 }
2479 }
2480
2481 return be_id;
2482}
2483
2484/*
2485 * Return the registered dev_acdb_id given a port ID to enable identifying the
2486 * correct AFE calibration information by comparing the header information.
2487 */
2488static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2489{
2490 int acdb_id = -EINVAL;
2491 int i = 0;
2492 int session;
2493 int port_type = afe_get_port_type(port_id);
2494 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2495
2496 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2497 __func__, port_id, be_id, port_type);
2498
2499 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2500 session = SESSION_TYPE_TX;
2501 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2502 session = SESSION_TYPE_RX;
2503 } else {
2504 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2505 acdb_id = -EINVAL;
2506 goto exit;
2507 }
2508
2509 if (be_id < 0) {
2510 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2511 goto exit;
2512 }
2513
2514 mutex_lock(&routing_lock);
2515 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2516 MSM_FRONTEND_DAI_MAX);
2517 if (i < MSM_FRONTEND_DAI_MAX)
2518 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2519
2520 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2521 __func__, i, session, be_id, acdb_id);
2522 mutex_unlock(&routing_lock);
2523exit:
2524 return acdb_id;
2525}
2526
2527static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2528 struct snd_ctl_elem_value *ucontrol)
2529{
2530 ucontrol->value.integer.value[0] = fm_switch_enable;
2531 pr_debug("%s: FM Switch enable %ld\n", __func__,
2532 ucontrol->value.integer.value[0]);
2533 return 0;
2534}
2535
2536static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2537 struct snd_ctl_elem_value *ucontrol)
2538{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302539 struct snd_soc_dapm_widget *widget =
2540 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302541 struct snd_soc_dapm_update *update = NULL;
2542
2543 pr_debug("%s: FM Switch enable %ld\n", __func__,
2544 ucontrol->value.integer.value[0]);
2545 if (ucontrol->value.integer.value[0])
2546 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2547 update);
2548 else
2549 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2550 update);
2551 fm_switch_enable = ucontrol->value.integer.value[0];
2552 return 1;
2553}
2554
2555static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2556 struct snd_ctl_elem_value *ucontrol)
2557{
2558 ucontrol->value.integer.value[0] = hfp_switch_enable;
2559 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2560 ucontrol->value.integer.value[0]);
2561 return 0;
2562}
2563
2564static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2565 struct snd_ctl_elem_value *ucontrol)
2566{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302567 struct snd_soc_dapm_widget *widget =
2568 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302569 struct snd_soc_dapm_update *update = NULL;
2570
2571 pr_debug("%s: HFP 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,
2575 1, update);
2576 else
2577 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2578 0, update);
2579 hfp_switch_enable = ucontrol->value.integer.value[0];
2580 return 1;
2581}
2582
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002583static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2584 struct snd_ctl_elem_value *ucontrol)
2585{
2586 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2587 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2588 ucontrol->value.integer.value[0]);
2589 return 0;
2590}
2591
2592static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2593 struct snd_ctl_elem_value *ucontrol)
2594{
2595 struct snd_soc_dapm_widget *widget =
2596 snd_soc_dapm_kcontrol_widget(kcontrol);
2597 struct snd_soc_dapm_update *update = NULL;
2598
2599 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2600 ucontrol->value.integer.value[0]);
2601 a2dp_switch_enable = ucontrol->value.integer.value[0];
2602 if (a2dp_switch_enable)
2603 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2604 1, update);
2605 else
2606 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2607 0, update);
2608 return 1;
2609}
2610
Zhou Songcaa541d2019-02-19 18:37:47 +08002611static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2612 struct snd_ctl_elem_value *ucontrol)
2613{
2614 ucontrol->value.integer.value[0] = sco_switch_enable;
2615 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2616 ucontrol->value.integer.value[0]);
2617 return 0;
2618}
2619
2620static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2621 struct snd_ctl_elem_value *ucontrol)
2622{
2623 struct snd_soc_dapm_widget *widget =
2624 snd_soc_dapm_kcontrol_widget(kcontrol);
2625 struct snd_soc_dapm_update *update = NULL;
2626
2627 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2628 ucontrol->value.integer.value[0]);
2629 sco_switch_enable = ucontrol->value.integer.value[0];
2630 if (sco_switch_enable)
2631 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2632 1, update);
2633 else
2634 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2635 0, update);
2636 return 1;
2637}
2638
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302639static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2640 struct snd_ctl_elem_value *ucontrol)
2641{
2642 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2643 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2644 ucontrol->value.integer.value[0]);
2645 return 0;
2646}
2647
2648static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2649 struct snd_ctl_elem_value *ucontrol)
2650{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302651 struct snd_soc_dapm_widget *widget =
2652 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302653 struct snd_soc_dapm_update *update = NULL;
2654
2655 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2656 ucontrol->value.integer.value[0]);
2657 if (ucontrol->value.integer.value[0])
2658 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2659 update);
2660 else
2661 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2662 update);
2663 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2664 return 1;
2665}
2666
2667static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2668 struct snd_ctl_elem_value *ucontrol)
2669{
2670 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2671 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2672 ucontrol->value.integer.value[0]);
2673 return 0;
2674}
2675
2676static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2677 struct snd_ctl_elem_value *ucontrol)
2678{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302679 struct snd_soc_dapm_widget *widget =
2680 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302681 struct snd_soc_dapm_update *update = NULL;
2682
2683 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2684 ucontrol->value.integer.value[0]);
2685 if (ucontrol->value.integer.value[0])
2686 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2687 update);
2688 else
2689 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2690 update);
2691 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2692 return 1;
2693}
2694
2695static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2696 struct snd_ctl_elem_value *ucontrol)
2697{
2698 ucontrol->value.integer.value[0] = usb_switch_enable;
2699 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2700 ucontrol->value.integer.value[0]);
2701 return 0;
2702}
2703
2704static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2705 struct snd_ctl_elem_value *ucontrol)
2706{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302707 struct snd_soc_dapm_widget *widget =
2708 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302709 struct snd_soc_dapm_update *update = NULL;
2710
2711 pr_debug("%s: USB Switch enable %ld\n", __func__,
2712 ucontrol->value.integer.value[0]);
2713 if (ucontrol->value.integer.value[0])
2714 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2715 1, update);
2716 else
2717 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2718 0, update);
2719 usb_switch_enable = ucontrol->value.integer.value[0];
2720 return 1;
2721}
2722
2723static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2724 struct snd_ctl_elem_value *ucontrol)
2725{
2726 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2727 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2728 ucontrol->value.integer.value[0]);
2729 return 0;
2730}
2731
2732static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2733 struct snd_ctl_elem_value *ucontrol)
2734{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302735 struct snd_soc_dapm_widget *widget =
2736 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302737 struct snd_soc_dapm_update *update = NULL;
2738
2739 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2740 ucontrol->value.integer.value[0]);
2741 if (ucontrol->value.integer.value[0])
2742 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2743 update);
2744 else
2745 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2746 update);
2747 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2748 return 1;
2749}
2750
2751static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2752 struct snd_ctl_elem_value *ucontrol)
2753{
2754 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2755 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2756 ucontrol->value.integer.value[0]);
2757 return 0;
2758}
2759
2760static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2761 struct snd_ctl_elem_value *ucontrol)
2762{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302763 struct snd_soc_dapm_widget *widget =
2764 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302765 struct snd_soc_dapm_update *update = NULL;
2766
2767 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2768 ucontrol->value.integer.value[0]);
2769 if (ucontrol->value.integer.value[0])
2770 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2771 update);
2772 else
2773 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2774 update);
2775 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2776 return 1;
2777}
2778
2779static int msm_routing_get_tert_mi2s_switch_mixer(
2780 struct snd_kcontrol *kcontrol,
2781 struct snd_ctl_elem_value *ucontrol)
2782{
2783 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2784 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2785 ucontrol->value.integer.value[0]);
2786 return 0;
2787}
2788
2789static int msm_routing_put_tert_mi2s_switch_mixer(
2790 struct snd_kcontrol *kcontrol,
2791 struct snd_ctl_elem_value *ucontrol)
2792{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302793 struct snd_soc_dapm_widget *widget =
2794 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302795 struct snd_soc_dapm_update *update = NULL;
2796
2797 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2798 ucontrol->value.integer.value[0]);
2799 if (ucontrol->value.integer.value[0])
2800 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2801 update);
2802 else
2803 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2804 update);
2805 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2806 return 1;
2807}
2808
2809static int msm_routing_get_quat_mi2s_switch_mixer(
2810 struct snd_kcontrol *kcontrol,
2811 struct snd_ctl_elem_value *ucontrol)
2812{
2813 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2814 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2815 ucontrol->value.integer.value[0]);
2816 return 0;
2817}
2818
2819static int msm_routing_put_quat_mi2s_switch_mixer(
2820 struct snd_kcontrol *kcontrol,
2821 struct snd_ctl_elem_value *ucontrol)
2822{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302823 struct snd_soc_dapm_widget *widget =
2824 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302825 struct snd_soc_dapm_update *update = NULL;
2826
2827 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2828 ucontrol->value.integer.value[0]);
2829 if (ucontrol->value.integer.value[0])
2830 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2831 update);
2832 else
2833 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2834 update);
2835 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2836 return 1;
2837}
2838
Rohit Kumara5077932017-09-10 22:05:05 +05302839static int msm_routing_get_quin_mi2s_switch_mixer(
2840 struct snd_kcontrol *kcontrol,
2841 struct snd_ctl_elem_value *ucontrol)
2842{
2843 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2844 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2845 ucontrol->value.integer.value[0]);
2846 return 0;
2847}
2848
2849static int msm_routing_put_quin_mi2s_switch_mixer(
2850 struct snd_kcontrol *kcontrol,
2851 struct snd_ctl_elem_value *ucontrol)
2852{
2853 struct snd_soc_dapm_widget *widget =
2854 snd_soc_dapm_kcontrol_widget(kcontrol);
2855 struct snd_soc_dapm_update *update = NULL;
2856
2857 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2858 ucontrol->value.integer.value[0]);
2859 if (ucontrol->value.integer.value[0])
2860 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2861 update);
2862 else
2863 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2864 update);
2865 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2866 return 1;
2867}
2868
Karthikeyan Manic3700752019-03-11 18:33:53 -07002869static int msm_routing_get_sen_mi2s_switch_mixer(
2870 struct snd_kcontrol *kcontrol,
2871 struct snd_ctl_elem_value *ucontrol)
2872{
2873 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2874 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2875 ucontrol->value.integer.value[0]);
2876 return 0;
2877}
2878
2879static int msm_routing_put_sen_mi2s_switch_mixer(
2880 struct snd_kcontrol *kcontrol,
2881 struct snd_ctl_elem_value *ucontrol)
2882{
2883 struct snd_soc_dapm_widget *widget =
2884 snd_soc_dapm_kcontrol_widget(kcontrol);
2885 struct snd_soc_dapm_update *update = NULL;
2886
2887 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2888 ucontrol->value.integer.value[0]);
2889 if (ucontrol->value.integer.value[0])
2890 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2891 update);
2892 else
2893 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2894 update);
2895 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2896 return 1;
2897}
2898
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302899static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2900 struct snd_ctl_elem_value *ucontrol)
2901{
2902 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2903 pr_debug("%s: FM Switch enable %ld\n", __func__,
2904 ucontrol->value.integer.value[0]);
2905 return 0;
2906}
2907
2908static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2909 struct snd_ctl_elem_value *ucontrol)
2910{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302911 struct snd_soc_dapm_widget *widget =
2912 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302913 struct snd_soc_dapm_update *update = NULL;
2914
2915 pr_debug("%s: FM Switch enable %ld\n", __func__,
2916 ucontrol->value.integer.value[0]);
2917 if (ucontrol->value.integer.value[0])
2918 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2919 update);
2920 else
2921 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2922 update);
2923 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2924 return 1;
2925}
2926
2927static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2928 struct snd_ctl_elem_value *ucontrol)
2929{
2930 ucontrol->value.integer.value[0] = lsm_port_index;
2931 return 0;
2932}
2933
2934static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2935 struct snd_ctl_elem_value *ucontrol)
2936{
2937 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2938 int mux = ucontrol->value.enumerated.item[0];
2939 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2940
2941 if (mux >= e->items) {
2942 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2943 return -EINVAL;
2944 }
2945
2946 pr_debug("%s: LSM enable %ld\n", __func__,
2947 ucontrol->value.integer.value[0]);
2948 switch (ucontrol->value.integer.value[0]) {
2949 case 1:
2950 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2951 break;
2952 case 2:
2953 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2954 break;
2955 case 3:
2956 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2957 break;
2958 case 4:
2959 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2960 break;
2961 case 5:
2962 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2963 break;
2964 case 6:
2965 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2966 break;
2967 case 7:
2968 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2969 break;
2970 case 8:
2971 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2972 break;
2973 case 9:
2974 lsm_port = ADM_LSM_PORT_ID;
2975 break;
2976 case 10:
2977 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2978 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302979 case 11:
2980 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2981 break;
2982 case 12:
2983 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2984 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302985 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002986 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302987 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302988 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002989 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2990 break;
2991 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302992 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2993 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302994 default:
2995 pr_err("Default lsm port");
2996 break;
2997 }
2998 set_lsm_port(lsm_port);
2999 lsm_port_index = ucontrol->value.integer.value[0];
3000
3001 return 0;
3002}
3003
3004static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3005 struct snd_ctl_elem_value *ucontrol)
3006{
3007 int i;
3008 u16 port_id;
3009 enum afe_mad_type mad_type;
3010
3011 pr_debug("%s: enter\n", __func__);
3012 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3013 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3014 strlen(lsm_port_text[i])))
3015 break;
3016
3017 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003018 pr_warn("%s: Invalid id name %s\n", __func__,
3019 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303020 return -EINVAL;
3021 }
3022
3023 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3024
3025 /*Check for Tertiary/Quaternary/INT3 TX port*/
3026 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3027 strlen(lsm_port_text[7])))
3028 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3029
3030 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3031 strlen(lsm_port_text[8])))
3032 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3033
3034 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3035 strlen(lsm_port_text[10])))
3036 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3037
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303038 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3039 strlen(lsm_port_text[13])))
3040 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3041
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303042 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3043 strlen(lsm_port_text[14])))
3044 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3045
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303046 mad_type = afe_port_get_mad_type(port_id);
3047 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3048 mad_type);
3049 switch (mad_type) {
3050 case MAD_HW_NONE:
3051 ucontrol->value.integer.value[0] = MADNONE;
3052 break;
3053 case MAD_HW_AUDIO:
3054 ucontrol->value.integer.value[0] = MADAUDIO;
3055 break;
3056 case MAD_HW_BEACON:
3057 ucontrol->value.integer.value[0] = MADBEACON;
3058 break;
3059 case MAD_HW_ULTRASOUND:
3060 ucontrol->value.integer.value[0] = MADULTRASOUND;
3061 break;
3062 case MAD_SW_AUDIO:
3063 ucontrol->value.integer.value[0] = MADSWAUDIO;
3064 break;
3065 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003066 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303067 return -EINVAL;
3068 }
3069 return 0;
3070}
3071
3072static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3073 struct snd_ctl_elem_value *ucontrol)
3074{
3075 int i;
3076 u16 port_id;
3077 enum afe_mad_type mad_type;
3078
3079 pr_debug("%s: enter\n", __func__);
3080 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3081 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3082 strlen(lsm_port_text[i])))
3083 break;
3084
3085 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003086 pr_warn("%s: Invalid id name %s\n", __func__,
3087 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303088 return -EINVAL;
3089 }
3090
3091 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3092 switch (ucontrol->value.integer.value[0]) {
3093 case MADNONE:
3094 mad_type = MAD_HW_NONE;
3095 break;
3096 case MADAUDIO:
3097 mad_type = MAD_HW_AUDIO;
3098 break;
3099 case MADBEACON:
3100 mad_type = MAD_HW_BEACON;
3101 break;
3102 case MADULTRASOUND:
3103 mad_type = MAD_HW_ULTRASOUND;
3104 break;
3105 case MADSWAUDIO:
3106 mad_type = MAD_SW_AUDIO;
3107 break;
3108 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003109 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303110 return -EINVAL;
3111 }
3112
3113 /*Check for Tertiary/Quaternary/INT3 TX port*/
3114 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3115 strlen(lsm_port_text[7])))
3116 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3117
3118 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3119 strlen(lsm_port_text[8])))
3120 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3121
3122 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3123 strlen(lsm_port_text[10])))
3124 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3125
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303126 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3127 strlen(lsm_port_text[13])))
3128 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3129
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303130 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3131 strlen(lsm_port_text[14])))
3132 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3133
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303134 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3135 mad_type);
3136 return afe_port_set_mad_type(port_id, mad_type);
3137}
3138
3139static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3140
Surendar Karka25e77dd2019-05-09 14:33:45 +05303141static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303142 adm_override_chs_text);
3143
3144static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3145{
3146 int backend_id;
3147
3148 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3149 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303150 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3151 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303152 } else {
3153 pr_err("%s: unsupported backend id: %s",
3154 __func__, kcontrol->id.name);
3155 return -EINVAL;
3156 }
3157
3158 return backend_id;
3159}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303160
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303161static int msm_routing_adm_channel_config_get(
3162 struct snd_kcontrol *kcontrol,
3163 struct snd_ctl_elem_value *ucontrol)
3164{
3165 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3166
3167 if (backend_id >= 0) {
3168 mutex_lock(&routing_lock);
3169 ucontrol->value.integer.value[0] =
3170 msm_bedais[backend_id].adm_override_ch;
3171 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3172 ucontrol->value.integer.value[0], backend_id);
3173 mutex_unlock(&routing_lock);
3174 }
3175
3176 return 0;
3177}
3178
3179static int msm_routing_adm_channel_config_put(
3180 struct snd_kcontrol *kcontrol,
3181 struct snd_ctl_elem_value *ucontrol)
3182{
3183 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3184
3185 if (backend_id >= 0) {
3186 mutex_lock(&routing_lock);
3187 msm_bedais[backend_id].adm_override_ch =
3188 ucontrol->value.integer.value[0];
3189 pr_debug("%s:updating BE :%d adm channels: %d\n",
3190 __func__, backend_id,
3191 msm_bedais[backend_id].adm_override_ch);
3192 mutex_unlock(&routing_lock);
3193 }
3194
3195 return 0;
3196}
3197
3198static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303199 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3200 msm_routing_adm_channel_config_get,
3201 msm_routing_adm_channel_config_put),
3202 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303203 msm_routing_adm_channel_config_get,
3204 msm_routing_adm_channel_config_put),
3205};
3206
3207static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3208 struct snd_ctl_elem_value *ucontrol)
3209{
3210
3211 mutex_lock(&routing_lock);
3212 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3213 mutex_unlock(&routing_lock);
3214 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3215 ucontrol->value.integer.value[0]);
3216 return 0;
3217};
3218
3219static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3220 struct snd_ctl_elem_value *ucontrol)
3221{
3222 struct aanc_data aanc_info;
3223
3224 mutex_lock(&routing_lock);
3225 memset(&aanc_info, 0x00, sizeof(aanc_info));
3226 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3227 ucontrol->value.integer.value[0]);
3228 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3229 if (ucontrol->value.integer.value[0] == 0) {
3230 aanc_info.aanc_active = false;
3231 aanc_info.aanc_tx_port = 0;
3232 aanc_info.aanc_rx_port = 0;
3233 } else {
3234 aanc_info.aanc_active = true;
3235 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3236 aanc_info.aanc_tx_port =
3237 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3238 }
3239 afe_set_aanc_info(&aanc_info);
3240 mutex_unlock(&routing_lock);
3241 return 0;
3242};
3243static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3244 struct snd_ctl_elem_value *ucontrol)
3245{
3246 int idx = 0, shift = 0;
3247 struct soc_mixer_control *mc =
3248 (struct soc_mixer_control *)kcontrol->private_value;
3249
Meng Wang05d5e9a2018-03-28 16:45:03 +08003250 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3251 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303252
3253 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3254 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3255 return -EINVAL;
3256 }
3257
3258 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003259 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303260 ucontrol->value.integer.value[0] = 1;
3261 else
3262 ucontrol->value.integer.value[0] = 0;
3263
Meng Wang05d5e9a2018-03-28 16:45:03 +08003264 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303265 ucontrol->value.integer.value[0]);
3266
3267 return 0;
3268}
3269
3270static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3271 struct snd_ctl_elem_value *ucontrol)
3272{
3273 int idx = 0, shift = 0;
3274 struct soc_mixer_control *mc =
3275 (struct soc_mixer_control *)kcontrol->private_value;
3276
Meng Wang05d5e9a2018-03-28 16:45:03 +08003277 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3278 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303279
3280 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3281 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3282 return -EINVAL;
3283 }
3284
Meng Wang05d5e9a2018-03-28 16:45:03 +08003285 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3286 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303287 ucontrol->value.integer.value[0], idx, shift);
3288
3289 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003290 afe_loopback(1, msm_bedais[mc->shift].port_id,
3291 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303292 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003293 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303294 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003295 afe_loopback(0, msm_bedais[mc->shift].port_id,
3296 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303297 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003298 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303299 }
3300
3301 return 1;
3302}
3303
3304static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3305 struct snd_ctl_elem_value *ucontrol)
3306{
3307 u16 fe_id = 0;
3308
3309 fe_id = ((struct soc_mixer_control *)
3310 kcontrol->private_value)->shift;
3311 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3312 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3313 return -EINVAL;
3314 }
3315
3316 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3317
3318 return 0;
3319}
3320
3321static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3322 struct snd_ctl_elem_value *ucontrol)
3323{
3324 u16 fe_id = 0;
3325
3326 fe_id = ((struct soc_mixer_control *)
3327 kcontrol->private_value)->shift;
3328 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3329 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3330 return -EINVAL;
3331 }
3332
3333 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3334
3335 return 1;
3336}
3337
3338static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3339 struct snd_ctl_elem_value *ucontrol)
3340{
3341 u16 fe_id = 0;
3342
3343 fe_id = ((struct soc_multi_mixer_control *)
3344 kcontrol->private_value)->shift;
3345 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3346 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3347 return -EINVAL;
3348 }
3349
3350 ucontrol->value.integer.value[0] =
3351 channel_mixer[fe_id].output_channel;
3352 return 0;
3353}
3354
3355static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3356 struct snd_ctl_elem_value *ucontrol)
3357{
3358 u16 fe_id = 0;
3359
3360 fe_id = ((struct soc_multi_mixer_control *)
3361 kcontrol->private_value)->shift;
3362 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3363 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3364 return -EINVAL;
3365 }
3366
3367 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3368 fe_id,
3369 (unsigned int)(ucontrol->value.integer.value[0]));
3370 channel_mixer[fe_id].output_channel =
3371 (unsigned int)(ucontrol->value.integer.value[0]);
3372
3373 return 1;
3374}
3375
3376static const char *const ch_mixer[] = {"Disable", "Enable"};
3377
3378/* If new backend is added, need update this array */
3379static const char *const be_name[] = {
3380"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3381"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3382"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3383"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3384"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3385"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3386"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3387"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3388"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3389"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3390"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3391"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003392"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303393"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3394"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3395"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3396"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3397"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3398"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3399"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3400"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3401"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3402"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3403"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3404"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3405"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3406"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3407"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3408"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3409"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303410"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3411"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3412"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3413"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003414"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3415"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3416"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3417"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003418"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3419"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3420"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3421"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3422"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3423"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3424"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3425"WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1","WSA_CDC_DMA_TX_1",
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003426"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303427"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3428"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3429"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3430"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3431"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003432"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303433};
3434
3435static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3436 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3437static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3438 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3439static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3440 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3441static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3442 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303443static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3444 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3445static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3446 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3447static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3448 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3449static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3450 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303451
3452static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3453 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3454static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3455 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3456static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3457 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3458static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3459 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3460static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3461 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3462static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3463 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3464static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3465 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3466static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3467 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303468static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3469 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3470static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3471 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3472static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3473 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3474static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3475 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3476static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3477 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3478static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3479 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3480static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3481 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3482static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3483 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303484
3485static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3486 unsigned int channels,
3487 unsigned int items, const char *const names[])
3488{
3489 if (uinfo->value.enumerated.item >= items)
3490 uinfo->value.enumerated.item = items - 1;
3491
3492 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3493 sizeof(uinfo->value.enumerated.name),
3494 "ALSA: too long item name '%s'\n",
3495 names[uinfo->value.enumerated.item]);
3496 strlcpy(uinfo->value.enumerated.name,
3497 names[uinfo->value.enumerated.item],
3498 sizeof(uinfo->value.enumerated.name));
3499 return 0;
3500}
3501
3502static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3503 struct snd_ctl_elem_info *uinfo)
3504{
3505 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3506
3507 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3508 uinfo->count = 1;
3509
3510 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3511 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3512
3513 return 0;
3514}
3515static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3516 struct snd_ctl_elem_value *ucontrol)
3517{
3518 u16 fe_id = 0;
3519
3520 fe_id = ((struct soc_enum *)
3521 kcontrol->private_value)->shift_l;
3522 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3523 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3524 return -EINVAL;
3525 }
3526
3527 pr_debug("%s: FE %d %s\n", __func__,
3528 fe_id,
3529 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3530 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3531 return 0;
3532}
3533
3534static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3535 struct snd_ctl_elem_value *ucontrol)
3536{
3537 u16 fe_id = 0;
3538
3539 fe_id = ((struct soc_enum *)
3540 kcontrol->private_value)->shift_l;
3541 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3542 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3543 return -EINVAL;
3544 }
3545
3546 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3547 pr_debug("%s: %s FE %d\n", __func__,
3548 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3549 fe_id);
3550 return 0;
3551}
3552
3553static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3554 struct snd_ctl_elem_info *uinfo)
3555{
3556 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3557
3558 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3559 uinfo->count = 1;
3560
3561 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3562 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3563
3564 return 0;
3565}
3566
3567static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3568 struct snd_ctl_elem_value *ucontrol)
3569{
3570 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3571 u16 fe_id = 0, in_ch = 0;
3572
3573 fe_id = e->shift_l;
3574 in_ch = e->shift_r;
3575 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3576 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3577 return -EINVAL;
3578 }
3579 if (in_ch >= ADM_MAX_CHANNELS) {
3580 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3581 return -EINVAL;
3582 }
3583
3584 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3585 return 1;
3586}
3587
3588static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3589 struct snd_ctl_elem_value *ucontrol)
3590{
3591 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3592 u16 fe_id = 0, in_ch = 0;
3593
3594 fe_id = e->shift_l;
3595 in_ch = e->shift_r;
3596 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3597 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3598 return -EINVAL;
3599 }
3600 if (in_ch >= ADM_MAX_CHANNELS) {
3601 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3602 return -EINVAL;
3603 }
3604
3605 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3606 return 1;
3607}
3608
3609
3610static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3611 struct snd_ctl_elem_info *uinfo)
3612{
3613 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3614 uinfo->count = ADM_MAX_CHANNELS;
3615 uinfo->value.integer.min = 0;
3616 uinfo->value.integer.max = WEIGHT_0_DB;
3617
3618 return 0;
3619}
3620
3621static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3622 struct snd_ctl_elem_value *ucontrol)
3623{
3624 u16 fe_id = 0, out_ch = 0;
3625 int i, weight;
3626
3627 fe_id = ((struct soc_multi_mixer_control *)
3628 kcontrol->private_value)->shift;
3629 out_ch = ((struct soc_multi_mixer_control *)
3630 kcontrol->private_value)->rshift;
3631 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3632 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3633 return -EINVAL;
3634 }
3635 if (out_ch >= ADM_MAX_CHANNELS) {
3636 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3637 return -EINVAL;
3638 }
3639
3640 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3641 __func__, fe_id,
3642 ucontrol->value.integer.value[0],
3643 ucontrol->value.integer.value[1],
3644 ucontrol->value.integer.value[2],
3645 ucontrol->value.integer.value[3],
3646 ucontrol->value.integer.value[4],
3647 ucontrol->value.integer.value[5],
3648 ucontrol->value.integer.value[6],
3649 ucontrol->value.integer.value[7]);
3650
3651 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3652 weight = ucontrol->value.integer.value[i];
3653 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3654 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3655 __func__, fe_id, out_ch, i,
3656 channel_mixer[fe_id].channel_weight[out_ch][i]);
3657 }
3658
3659 return 0;
3660}
3661
3662static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3663 struct snd_ctl_elem_value *ucontrol)
3664{
3665 u16 fe_id = 0, out_ch = 0;
3666 int i;
3667
3668 fe_id = ((struct soc_multi_mixer_control *)
3669 kcontrol->private_value)->shift;
3670 out_ch = ((struct soc_multi_mixer_control *)
3671 kcontrol->private_value)->rshift;
3672 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3673 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3674 return -EINVAL;
3675 }
3676 if (out_ch >= ADM_MAX_CHANNELS) {
3677 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3678 return -EINVAL;
3679 }
3680
3681 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3682 ucontrol->value.integer.value[i] =
3683 channel_mixer[fe_id].channel_weight[out_ch][i];
3684
3685 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3686 __func__, fe_id,
3687 ucontrol->value.integer.value[0],
3688 ucontrol->value.integer.value[1],
3689 ucontrol->value.integer.value[2],
3690 ucontrol->value.integer.value[3],
3691 ucontrol->value.integer.value[4],
3692 ucontrol->value.integer.value[5],
3693 ucontrol->value.integer.value[6],
3694 ucontrol->value.integer.value[7]);
3695
3696 return 0;
3697}
3698
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303699static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3700 struct snd_ctl_elem_info *uinfo)
3701{
3702 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3703 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3704 /* Valid channel map value ranges from 1 to 64 */
3705 uinfo->value.integer.min = 0;
3706 uinfo->value.integer.max = 64;
3707
3708 return 0;
3709}
3710
3711static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3712 struct snd_ctl_elem_value *ucontrol)
3713{
3714 u16 fe_id = 0;
3715 int i, ch_map;
3716
3717 fe_id = ((struct soc_multi_mixer_control *)
3718 kcontrol->private_value)->shift;
3719 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3720 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3721 return -EINVAL;
3722 }
3723
3724 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3725 ch_map = ucontrol->value.integer.value[i];
3726 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3727 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3728 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3729 }
3730
3731 /* Make override_out_ch_map false if ch map is reset */
3732 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3733 channel_mixer[fe_id].override_out_ch_map = false;
3734 else
3735 channel_mixer[fe_id].override_out_ch_map = true;
3736
3737 return 0;
3738}
3739
3740static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3741 struct snd_ctl_elem_value *ucontrol)
3742{
3743 u16 fe_id = 0;
3744 int i;
3745
3746 fe_id = ((struct soc_multi_mixer_control *)
3747 kcontrol->private_value)->shift;
3748 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3749 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3750 return -EINVAL;
3751 }
3752
3753 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3754 ucontrol->value.integer.value[i] =
3755 channel_mixer[fe_id].out_ch_map[i];
3756
3757 return 0;
3758}
3759
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303760static const struct snd_kcontrol_new channel_mixer_controls[] = {
3761 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3762 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3763 msm_pcm_get_channel_rule_index,
3764 msm_pcm_put_channel_rule_index),
3765 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3766 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3767 msm_pcm_get_channel_rule_index,
3768 msm_pcm_put_channel_rule_index),
3769 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3770 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3771 msm_pcm_get_channel_rule_index,
3772 msm_pcm_put_channel_rule_index),
3773 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3774 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3775 msm_pcm_get_channel_rule_index,
3776 msm_pcm_put_channel_rule_index),
3777 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3778 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3779 msm_pcm_get_channel_rule_index,
3780 msm_pcm_put_channel_rule_index),
3781 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3782 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3783 msm_pcm_get_channel_rule_index,
3784 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303785 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3786 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3787 msm_pcm_get_channel_rule_index,
3788 msm_pcm_put_channel_rule_index),
3789 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3790 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3791 msm_pcm_get_channel_rule_index,
3792 msm_pcm_put_channel_rule_index),
3793 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3794 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3795 msm_pcm_get_channel_rule_index,
3796 msm_pcm_put_channel_rule_index),
3797 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3798 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3799 msm_pcm_get_channel_rule_index,
3800 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303801
3802 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303803 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303804 msm_pcm_get_out_chs,
3805 msm_pcm_put_out_chs),
3806 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3807 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3808 msm_pcm_get_out_chs,
3809 msm_pcm_put_out_chs),
3810 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3811 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3812 msm_pcm_get_out_chs,
3813 msm_pcm_put_out_chs),
3814 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3815 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3816 msm_pcm_get_out_chs,
3817 msm_pcm_put_out_chs),
3818 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3819 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3820 msm_pcm_get_out_chs,
3821 msm_pcm_put_out_chs),
3822 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3823 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3824 msm_pcm_get_out_chs,
3825 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303826 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3827 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3828 msm_pcm_get_out_chs,
3829 msm_pcm_put_out_chs),
3830 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3831 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3832 msm_pcm_get_out_chs,
3833 msm_pcm_put_out_chs),
3834 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3835 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3836 msm_pcm_get_out_chs,
3837 msm_pcm_put_out_chs),
3838 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3839 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3840 msm_pcm_get_out_chs,
3841 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303842 {
3843 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3844 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3845 .name = "MultiMedia1 Channel Mixer",
3846 .info = msm_pcm_channel_mixer_info,
3847 .get = msm_pcm_channel_mixer_get,
3848 .put = msm_pcm_channel_mixer_put,
3849 .private_value = (unsigned long)&(mm1_channel_mux)
3850 },
3851 {
3852 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3853 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3854 .name = "MultiMedia2 Channel Mixer",
3855 .info = msm_pcm_channel_mixer_info,
3856 .get = msm_pcm_channel_mixer_get,
3857 .put = msm_pcm_channel_mixer_put,
3858 .private_value = (unsigned long)&(mm2_channel_mux)
3859 },
3860 {
3861 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3862 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3863 .name = "MultiMedia3 Channel Mixer",
3864 .info = msm_pcm_channel_mixer_info,
3865 .get = msm_pcm_channel_mixer_get,
3866 .put = msm_pcm_channel_mixer_put,
3867 .private_value = (unsigned long)&(mm3_channel_mux)
3868 },
3869 {
3870 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3871 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3872 .name = "MultiMedia4 Channel Mixer",
3873 .info = msm_pcm_channel_mixer_info,
3874 .get = msm_pcm_channel_mixer_get,
3875 .put = msm_pcm_channel_mixer_put,
3876 .private_value = (unsigned long)&(mm4_channel_mux)
3877 },
3878 {
3879 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3880 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303881 .name = "MultiMedia18 Channel Mixer",
3882 .info = msm_pcm_channel_mixer_info,
3883 .get = msm_pcm_channel_mixer_get,
3884 .put = msm_pcm_channel_mixer_put,
3885 .private_value = (unsigned long)&(mm18_channel_mux)
3886 },
3887 {
3888 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3889 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3890 .name = "MultiMedia19 Channel Mixer",
3891 .info = msm_pcm_channel_mixer_info,
3892 .get = msm_pcm_channel_mixer_get,
3893 .put = msm_pcm_channel_mixer_put,
3894 .private_value = (unsigned long)&(mm19_channel_mux)
3895 },
3896 {
3897 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3898 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3899 .name = "MultiMedia28 Channel Mixer",
3900 .info = msm_pcm_channel_mixer_info,
3901 .get = msm_pcm_channel_mixer_get,
3902 .put = msm_pcm_channel_mixer_put,
3903 .private_value = (unsigned long)&(mm28_channel_mux)
3904 },
3905 {
3906 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3907 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3908 .name = "MultiMedia29 Channel Mixer",
3909 .info = msm_pcm_channel_mixer_info,
3910 .get = msm_pcm_channel_mixer_get,
3911 .put = msm_pcm_channel_mixer_put,
3912 .private_value = (unsigned long)&(mm29_channel_mux)
3913 },
3914 {
3915 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3916 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303917 .name = "MultiMedia1 Output Channel1",
3918 .info = msm_pcm_channel_weight_info,
3919 .get = msm_pcm_channel_weight_get,
3920 .put = msm_pcm_channel_weight_put,
3921 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3922 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3923 },
3924 {
3925 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3926 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3927 .name = "MultiMedia1 Output Channel2",
3928 .info = msm_pcm_channel_weight_info,
3929 .get = msm_pcm_channel_weight_get,
3930 .put = msm_pcm_channel_weight_put,
3931 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3932 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3933 },
3934 {
3935 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3936 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3937 .name = "MultiMedia1 Output Channel3",
3938 .info = msm_pcm_channel_weight_info,
3939 .get = msm_pcm_channel_weight_get,
3940 .put = msm_pcm_channel_weight_put,
3941 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3942 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3943 },
3944 {
3945 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3946 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3947 .name = "MultiMedia1 Output Channel4",
3948 .info = msm_pcm_channel_weight_info,
3949 .get = msm_pcm_channel_weight_get,
3950 .put = msm_pcm_channel_weight_put,
3951 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3952 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3953 },
3954 {
3955 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3956 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3957 .name = "MultiMedia1 Output Channel5",
3958 .info = msm_pcm_channel_weight_info,
3959 .get = msm_pcm_channel_weight_get,
3960 .put = msm_pcm_channel_weight_put,
3961 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3962 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3963 },
3964 {
3965 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3966 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3967 .name = "MultiMedia1 Output Channel6",
3968 .info = msm_pcm_channel_weight_info,
3969 .get = msm_pcm_channel_weight_get,
3970 .put = msm_pcm_channel_weight_put,
3971 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3972 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3973 },
3974 {
3975 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3976 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3977 .name = "MultiMedia1 Output Channel7",
3978 .info = msm_pcm_channel_weight_info,
3979 .get = msm_pcm_channel_weight_get,
3980 .put = msm_pcm_channel_weight_put,
3981 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3982 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3983 },
3984 {
3985 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3986 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3987 .name = "MultiMedia1 Output Channel8",
3988 .info = msm_pcm_channel_weight_info,
3989 .get = msm_pcm_channel_weight_get,
3990 .put = msm_pcm_channel_weight_put,
3991 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3992 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3993 },
3994 {
3995 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3996 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05303997 .name = "MultiMedia1 Output Channel9",
3998 .info = msm_pcm_channel_weight_info,
3999 .get = msm_pcm_channel_weight_get,
4000 .put = msm_pcm_channel_weight_put,
4001 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4002 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4003 },
4004 {
4005 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4006 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4007 .name = "MultiMedia1 Output Channel10",
4008 .info = msm_pcm_channel_weight_info,
4009 .get = msm_pcm_channel_weight_get,
4010 .put = msm_pcm_channel_weight_put,
4011 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4012 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4013 },
4014 {
4015 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4016 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304017 .name = "MultiMedia1 Output Channel11",
4018 .info = msm_pcm_channel_weight_info,
4019 .get = msm_pcm_channel_weight_get,
4020 .put = msm_pcm_channel_weight_put,
4021 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4022 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4023 },
4024 {
4025 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4026 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4027 .name = "MultiMedia1 Output Channel12",
4028 .info = msm_pcm_channel_weight_info,
4029 .get = msm_pcm_channel_weight_get,
4030 .put = msm_pcm_channel_weight_put,
4031 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4032 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4033 },
4034 {
4035 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4036 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4037 .name = "MultiMedia1 Output Channel13",
4038 .info = msm_pcm_channel_weight_info,
4039 .get = msm_pcm_channel_weight_get,
4040 .put = msm_pcm_channel_weight_put,
4041 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4042 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4043 },
4044 {
4045 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4046 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4047 .name = "MultiMedia1 Output Channel14",
4048 .info = msm_pcm_channel_weight_info,
4049 .get = msm_pcm_channel_weight_get,
4050 .put = msm_pcm_channel_weight_put,
4051 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4052 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4053 },
4054 {
4055 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4056 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304057 .name = "MultiMedia2 Output Channel1",
4058 .info = msm_pcm_channel_weight_info,
4059 .get = msm_pcm_channel_weight_get,
4060 .put = msm_pcm_channel_weight_put,
4061 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4062 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4063 },
4064 {
4065 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4066 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4067 .name = "MultiMedia2 Output Channel2",
4068 .info = msm_pcm_channel_weight_info,
4069 .get = msm_pcm_channel_weight_get,
4070 .put = msm_pcm_channel_weight_put,
4071 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4072 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4073 },
4074 {
4075 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4076 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4077 .name = "MultiMedia2 Output Channel3",
4078 .info = msm_pcm_channel_weight_info,
4079 .get = msm_pcm_channel_weight_get,
4080 .put = msm_pcm_channel_weight_put,
4081 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4082 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4083 },
4084 {
4085 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4086 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4087 .name = "MultiMedia3 Output Channel1",
4088 .info = msm_pcm_channel_weight_info,
4089 .get = msm_pcm_channel_weight_get,
4090 .put = msm_pcm_channel_weight_put,
4091 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4092 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4093 },
4094 {
4095 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4096 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4097 .name = "MultiMedia3 Output Channel2",
4098 .info = msm_pcm_channel_weight_info,
4099 .get = msm_pcm_channel_weight_get,
4100 .put = msm_pcm_channel_weight_put,
4101 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4102 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4103 },
4104 {
4105 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4106 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304107 .name = "MultiMedia18 Output Channel1",
4108 .info = msm_pcm_channel_weight_info,
4109 .get = msm_pcm_channel_weight_get,
4110 .put = msm_pcm_channel_weight_put,
4111 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4112 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4113 },
4114 {
4115 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4116 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4117 .name = "MultiMedia18 Output Channel2",
4118 .info = msm_pcm_channel_weight_info,
4119 .get = msm_pcm_channel_weight_get,
4120 .put = msm_pcm_channel_weight_put,
4121 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4122 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4123 },
4124 {
4125 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4126 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4127 .name = "MultiMedia18 Output Channel3",
4128 .info = msm_pcm_channel_weight_info,
4129 .get = msm_pcm_channel_weight_get,
4130 .put = msm_pcm_channel_weight_put,
4131 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4132 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4133 },
4134 {
4135 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4136 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4137 .name = "MultiMedia18 Output Channel4",
4138 .info = msm_pcm_channel_weight_info,
4139 .get = msm_pcm_channel_weight_get,
4140 .put = msm_pcm_channel_weight_put,
4141 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4142 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4143 },
4144 {
4145 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4146 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4147 .name = "MultiMedia18 Output Channel5",
4148 .info = msm_pcm_channel_weight_info,
4149 .get = msm_pcm_channel_weight_get,
4150 .put = msm_pcm_channel_weight_put,
4151 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4152 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4153 },
4154 {
4155 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4156 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4157 .name = "MultiMedia18 Output Channel6",
4158 .info = msm_pcm_channel_weight_info,
4159 .get = msm_pcm_channel_weight_get,
4160 .put = msm_pcm_channel_weight_put,
4161 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4162 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4163 },
4164 {
4165 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4166 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4167 .name = "MultiMedia18 Output Channel7",
4168 .info = msm_pcm_channel_weight_info,
4169 .get = msm_pcm_channel_weight_get,
4170 .put = msm_pcm_channel_weight_put,
4171 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4172 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4173 },
4174 {
4175 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4176 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4177 .name = "MultiMedia18 Output Channel8",
4178 .info = msm_pcm_channel_weight_info,
4179 .get = msm_pcm_channel_weight_get,
4180 .put = msm_pcm_channel_weight_put,
4181 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4182 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4183 },
4184 {
4185 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4186 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4187 .name = "MultiMedia18 Output Channel9",
4188 .info = msm_pcm_channel_weight_info,
4189 .get = msm_pcm_channel_weight_get,
4190 .put = msm_pcm_channel_weight_put,
4191 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4192 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4193 },
4194 {
4195 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4196 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4197 .name = "MultiMedia18 Output Channel10",
4198 .info = msm_pcm_channel_weight_info,
4199 .get = msm_pcm_channel_weight_get,
4200 .put = msm_pcm_channel_weight_put,
4201 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4202 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4203 },
4204 {
4205 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4206 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4207 .name = "MultiMedia18 Output Channel11",
4208 .info = msm_pcm_channel_weight_info,
4209 .get = msm_pcm_channel_weight_get,
4210 .put = msm_pcm_channel_weight_put,
4211 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4212 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4213 },
4214 {
4215 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4216 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4217 .name = "MultiMedia18 Output Channel12",
4218 .info = msm_pcm_channel_weight_info,
4219 .get = msm_pcm_channel_weight_get,
4220 .put = msm_pcm_channel_weight_put,
4221 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4222 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4223 },
4224 {
4225 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4226 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4227 .name = "MultiMedia18 Output Channel13",
4228 .info = msm_pcm_channel_weight_info,
4229 .get = msm_pcm_channel_weight_get,
4230 .put = msm_pcm_channel_weight_put,
4231 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4232 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4233 },
4234 {
4235 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4236 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4237 .name = "MultiMedia18 Output Channel14",
4238 .info = msm_pcm_channel_weight_info,
4239 .get = msm_pcm_channel_weight_get,
4240 .put = msm_pcm_channel_weight_put,
4241 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4242 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4243 },
4244 {
4245 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4246 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4247 .name = "MultiMedia19 Output Channel1",
4248 .info = msm_pcm_channel_weight_info,
4249 .get = msm_pcm_channel_weight_get,
4250 .put = msm_pcm_channel_weight_put,
4251 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4252 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4253 },
4254 {
4255 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4256 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4257 .name = "MultiMedia19 Output Channel2",
4258 .info = msm_pcm_channel_weight_info,
4259 .get = msm_pcm_channel_weight_get,
4260 .put = msm_pcm_channel_weight_put,
4261 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4262 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4263 },
4264 {
4265 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4266 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4267 .name = "MultiMedia19 Output Channel3",
4268 .info = msm_pcm_channel_weight_info,
4269 .get = msm_pcm_channel_weight_get,
4270 .put = msm_pcm_channel_weight_put,
4271 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4272 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4273 },
4274 {
4275 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4276 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4277 .name = "MultiMedia19 Output Channel4",
4278 .info = msm_pcm_channel_weight_info,
4279 .get = msm_pcm_channel_weight_get,
4280 .put = msm_pcm_channel_weight_put,
4281 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4282 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4283 },
4284 {
4285 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4286 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4287 .name = "MultiMedia19 Output Channel5",
4288 .info = msm_pcm_channel_weight_info,
4289 .get = msm_pcm_channel_weight_get,
4290 .put = msm_pcm_channel_weight_put,
4291 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4292 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4293 },
4294 {
4295 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4296 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4297 .name = "MultiMedia19 Output Channel6",
4298 .info = msm_pcm_channel_weight_info,
4299 .get = msm_pcm_channel_weight_get,
4300 .put = msm_pcm_channel_weight_put,
4301 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4302 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4303 },
4304 {
4305 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4306 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4307 .name = "MultiMedia19 Output Channel7",
4308 .info = msm_pcm_channel_weight_info,
4309 .get = msm_pcm_channel_weight_get,
4310 .put = msm_pcm_channel_weight_put,
4311 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4312 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4313 },
4314 {
4315 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4316 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4317 .name = "MultiMedia19 Output Channel8",
4318 .info = msm_pcm_channel_weight_info,
4319 .get = msm_pcm_channel_weight_get,
4320 .put = msm_pcm_channel_weight_put,
4321 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4322 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4323 },
4324 {
4325 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4326 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4327 .name = "MultiMedia19 Output Channel9",
4328 .info = msm_pcm_channel_weight_info,
4329 .get = msm_pcm_channel_weight_get,
4330 .put = msm_pcm_channel_weight_put,
4331 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4332 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4333 },
4334 {
4335 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4336 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4337 .name = "MultiMedia19 Output Channel10",
4338 .info = msm_pcm_channel_weight_info,
4339 .get = msm_pcm_channel_weight_get,
4340 .put = msm_pcm_channel_weight_put,
4341 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4342 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4343 },
4344 {
4345 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4346 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4347 .name = "MultiMedia19 Output Channel11",
4348 .info = msm_pcm_channel_weight_info,
4349 .get = msm_pcm_channel_weight_get,
4350 .put = msm_pcm_channel_weight_put,
4351 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4352 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4353 },
4354 {
4355 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4356 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4357 .name = "MultiMedia19 Output Channel12",
4358 .info = msm_pcm_channel_weight_info,
4359 .get = msm_pcm_channel_weight_get,
4360 .put = msm_pcm_channel_weight_put,
4361 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4362 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4363 },
4364 {
4365 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4366 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4367 .name = "MultiMedia19 Output Channel13",
4368 .info = msm_pcm_channel_weight_info,
4369 .get = msm_pcm_channel_weight_get,
4370 .put = msm_pcm_channel_weight_put,
4371 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4372 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4373 },
4374 {
4375 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4376 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4377 .name = "MultiMedia19 Output Channel14",
4378 .info = msm_pcm_channel_weight_info,
4379 .get = msm_pcm_channel_weight_get,
4380 .put = msm_pcm_channel_weight_put,
4381 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4382 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4383 },
4384 {
4385 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4386 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4387 .name = "MultiMedia28 Output Channel1",
4388 .info = msm_pcm_channel_weight_info,
4389 .get = msm_pcm_channel_weight_get,
4390 .put = msm_pcm_channel_weight_put,
4391 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4392 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4393 },
4394 {
4395 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4396 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4397 .name = "MultiMedia28 Output Channel2",
4398 .info = msm_pcm_channel_weight_info,
4399 .get = msm_pcm_channel_weight_get,
4400 .put = msm_pcm_channel_weight_put,
4401 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4402 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4403 },
4404 {
4405 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4406 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4407 .name = "MultiMedia28 Output Channel3",
4408 .info = msm_pcm_channel_weight_info,
4409 .get = msm_pcm_channel_weight_get,
4410 .put = msm_pcm_channel_weight_put,
4411 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4412 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4413 },
4414 {
4415 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4416 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4417 .name = "MultiMedia28 Output Channel4",
4418 .info = msm_pcm_channel_weight_info,
4419 .get = msm_pcm_channel_weight_get,
4420 .put = msm_pcm_channel_weight_put,
4421 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4422 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4423 },
4424 {
4425 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4426 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4427 .name = "MultiMedia28 Output Channel5",
4428 .info = msm_pcm_channel_weight_info,
4429 .get = msm_pcm_channel_weight_get,
4430 .put = msm_pcm_channel_weight_put,
4431 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4432 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4433 },
4434 {
4435 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4436 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4437 .name = "MultiMedia28 Output Channel6",
4438 .info = msm_pcm_channel_weight_info,
4439 .get = msm_pcm_channel_weight_get,
4440 .put = msm_pcm_channel_weight_put,
4441 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4442 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4443 },
4444 {
4445 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4446 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4447 .name = "MultiMedia28 Output Channel7",
4448 .info = msm_pcm_channel_weight_info,
4449 .get = msm_pcm_channel_weight_get,
4450 .put = msm_pcm_channel_weight_put,
4451 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4452 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4453 },
4454 {
4455 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4456 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4457 .name = "MultiMedia28 Output Channel8",
4458 .info = msm_pcm_channel_weight_info,
4459 .get = msm_pcm_channel_weight_get,
4460 .put = msm_pcm_channel_weight_put,
4461 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4462 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4463 },
4464 {
4465 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4466 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4467 .name = "MultiMedia28 Output Channel9",
4468 .info = msm_pcm_channel_weight_info,
4469 .get = msm_pcm_channel_weight_get,
4470 .put = msm_pcm_channel_weight_put,
4471 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4472 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4473 },
4474 {
4475 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4476 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4477 .name = "MultiMedia28 Output Channel10",
4478 .info = msm_pcm_channel_weight_info,
4479 .get = msm_pcm_channel_weight_get,
4480 .put = msm_pcm_channel_weight_put,
4481 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4482 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4483 },
4484 {
4485 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4486 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4487 .name = "MultiMedia28 Output Channel11",
4488 .info = msm_pcm_channel_weight_info,
4489 .get = msm_pcm_channel_weight_get,
4490 .put = msm_pcm_channel_weight_put,
4491 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4492 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4493 },
4494 {
4495 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4496 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4497 .name = "MultiMedia28 Output Channel12",
4498 .info = msm_pcm_channel_weight_info,
4499 .get = msm_pcm_channel_weight_get,
4500 .put = msm_pcm_channel_weight_put,
4501 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4502 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4503 },
4504 {
4505 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4506 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4507 .name = "MultiMedia28 Output Channel13",
4508 .info = msm_pcm_channel_weight_info,
4509 .get = msm_pcm_channel_weight_get,
4510 .put = msm_pcm_channel_weight_put,
4511 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4512 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4513 },
4514 {
4515 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4516 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4517 .name = "MultiMedia28 Output Channel14",
4518 .info = msm_pcm_channel_weight_info,
4519 .get = msm_pcm_channel_weight_get,
4520 .put = msm_pcm_channel_weight_put,
4521 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4522 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4523 },
4524 {
4525 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4526 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4527 .name = "MultiMedia29 Output Channel1",
4528 .info = msm_pcm_channel_weight_info,
4529 .get = msm_pcm_channel_weight_get,
4530 .put = msm_pcm_channel_weight_put,
4531 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4532 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4533 },
4534 {
4535 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4536 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4537 .name = "MultiMedia29 Output Channel2",
4538 .info = msm_pcm_channel_weight_info,
4539 .get = msm_pcm_channel_weight_get,
4540 .put = msm_pcm_channel_weight_put,
4541 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4542 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4543 },
4544 {
4545 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4546 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4547 .name = "MultiMedia29 Output Channel3",
4548 .info = msm_pcm_channel_weight_info,
4549 .get = msm_pcm_channel_weight_get,
4550 .put = msm_pcm_channel_weight_put,
4551 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4552 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4553 },
4554 {
4555 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4556 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4557 .name = "MultiMedia29 Output Channel4",
4558 .info = msm_pcm_channel_weight_info,
4559 .get = msm_pcm_channel_weight_get,
4560 .put = msm_pcm_channel_weight_put,
4561 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4562 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4563 },
4564 {
4565 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4566 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4567 .name = "MultiMedia29 Output Channel5",
4568 .info = msm_pcm_channel_weight_info,
4569 .get = msm_pcm_channel_weight_get,
4570 .put = msm_pcm_channel_weight_put,
4571 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4572 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4573 },
4574 {
4575 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4576 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4577 .name = "MultiMedia29 Output Channel6",
4578 .info = msm_pcm_channel_weight_info,
4579 .get = msm_pcm_channel_weight_get,
4580 .put = msm_pcm_channel_weight_put,
4581 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4582 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4583 },
4584 {
4585 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4586 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4587 .name = "MultiMedia29 Output Channel7",
4588 .info = msm_pcm_channel_weight_info,
4589 .get = msm_pcm_channel_weight_get,
4590 .put = msm_pcm_channel_weight_put,
4591 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4592 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4593 },
4594 {
4595 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4596 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4597 .name = "MultiMedia29 Output Channel8",
4598 .info = msm_pcm_channel_weight_info,
4599 .get = msm_pcm_channel_weight_get,
4600 .put = msm_pcm_channel_weight_put,
4601 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4602 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4603 },
4604 {
4605 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4606 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4607 .name = "MultiMedia29 Output Channel9",
4608 .info = msm_pcm_channel_weight_info,
4609 .get = msm_pcm_channel_weight_get,
4610 .put = msm_pcm_channel_weight_put,
4611 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4612 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4613 },
4614 {
4615 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4616 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4617 .name = "MultiMedia29 Output Channel10",
4618 .info = msm_pcm_channel_weight_info,
4619 .get = msm_pcm_channel_weight_get,
4620 .put = msm_pcm_channel_weight_put,
4621 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4622 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4623 },
4624 {
4625 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4626 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4627 .name = "MultiMedia29 Output Channel11",
4628 .info = msm_pcm_channel_weight_info,
4629 .get = msm_pcm_channel_weight_get,
4630 .put = msm_pcm_channel_weight_put,
4631 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4632 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4633 },
4634 {
4635 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4636 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4637 .name = "MultiMedia29 Output Channel12",
4638 .info = msm_pcm_channel_weight_info,
4639 .get = msm_pcm_channel_weight_get,
4640 .put = msm_pcm_channel_weight_put,
4641 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4642 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4643 },
4644 {
4645 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4646 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4647 .name = "MultiMedia29 Output Channel13",
4648 .info = msm_pcm_channel_weight_info,
4649 .get = msm_pcm_channel_weight_get,
4650 .put = msm_pcm_channel_weight_put,
4651 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4652 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4653 },
4654 {
4655 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4656 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4657 .name = "MultiMedia29 Output Channel14",
4658 .info = msm_pcm_channel_weight_info,
4659 .get = msm_pcm_channel_weight_get,
4660 .put = msm_pcm_channel_weight_put,
4661 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4662 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4663 },
4664 {
4665 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4666 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304667 .name = "MultiMedia1 Channel1",
4668 .info = msm_pcm_channel_input_be_info,
4669 .get = msm_pcm_channel_input_be_get,
4670 .put = msm_pcm_channel_input_be_put,
4671 .private_value = (unsigned long)&(mm1_ch1_enum)
4672 },
4673 {
4674 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4675 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4676 .name = "MultiMedia1 Channel2",
4677 .info = msm_pcm_channel_input_be_info,
4678 .get = msm_pcm_channel_input_be_get,
4679 .put = msm_pcm_channel_input_be_put,
4680 .private_value = (unsigned long)&(mm1_ch2_enum)
4681 },
4682 {
4683 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4684 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4685 .name = "MultiMedia1 Channel3",
4686 .info = msm_pcm_channel_input_be_info,
4687 .get = msm_pcm_channel_input_be_get,
4688 .put = msm_pcm_channel_input_be_put,
4689 .private_value = (unsigned long)&(mm1_ch3_enum)
4690 },
4691 {
4692 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4693 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4694 .name = "MultiMedia1 Channel4",
4695 .info = msm_pcm_channel_input_be_info,
4696 .get = msm_pcm_channel_input_be_get,
4697 .put = msm_pcm_channel_input_be_put,
4698 .private_value = (unsigned long)&(mm1_ch4_enum)
4699 },
4700 {
4701 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4702 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4703 .name = "MultiMedia1 Channel5",
4704 .info = msm_pcm_channel_input_be_info,
4705 .get = msm_pcm_channel_input_be_get,
4706 .put = msm_pcm_channel_input_be_put,
4707 .private_value = (unsigned long)&(mm1_ch5_enum)
4708 },
4709 {
4710 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4711 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4712 .name = "MultiMedia1 Channel6",
4713 .info = msm_pcm_channel_input_be_info,
4714 .get = msm_pcm_channel_input_be_get,
4715 .put = msm_pcm_channel_input_be_put,
4716 .private_value = (unsigned long)&(mm1_ch6_enum)
4717 },
4718 {
4719 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4720 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4721 .name = "MultiMedia1 Channel7",
4722 .info = msm_pcm_channel_input_be_info,
4723 .get = msm_pcm_channel_input_be_get,
4724 .put = msm_pcm_channel_input_be_put,
4725 .private_value = (unsigned long)&(mm1_ch7_enum)
4726 },
4727 {
4728 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4729 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4730 .name = "MultiMedia1 Channel8",
4731 .info = msm_pcm_channel_input_be_info,
4732 .get = msm_pcm_channel_input_be_get,
4733 .put = msm_pcm_channel_input_be_put,
4734 .private_value = (unsigned long)&(mm1_ch8_enum)
4735 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304736 {
4737 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4738 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304739 .name = "MultiMedia18 Channel1",
4740 .info = msm_pcm_channel_input_be_info,
4741 .get = msm_pcm_channel_input_be_get,
4742 .put = msm_pcm_channel_input_be_put,
4743 .private_value = (unsigned long)&(mm18_ch1_enum)
4744 },
4745 {
4746 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4747 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4748 .name = "MultiMedia18 Channel2",
4749 .info = msm_pcm_channel_input_be_info,
4750 .get = msm_pcm_channel_input_be_get,
4751 .put = msm_pcm_channel_input_be_put,
4752 .private_value = (unsigned long)&(mm18_ch2_enum)
4753 },
4754 {
4755 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4756 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4757 .name = "MultiMedia19 Channel1",
4758 .info = msm_pcm_channel_input_be_info,
4759 .get = msm_pcm_channel_input_be_get,
4760 .put = msm_pcm_channel_input_be_put,
4761 .private_value = (unsigned long)&(mm19_ch1_enum)
4762 },
4763 {
4764 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4765 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4766 .name = "MultiMedia19 Channel2",
4767 .info = msm_pcm_channel_input_be_info,
4768 .get = msm_pcm_channel_input_be_get,
4769 .put = msm_pcm_channel_input_be_put,
4770 .private_value = (unsigned long)&(mm19_ch2_enum)
4771 },
4772 {
4773 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4774 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4775 .name = "MultiMedia28 Channel1",
4776 .info = msm_pcm_channel_input_be_info,
4777 .get = msm_pcm_channel_input_be_get,
4778 .put = msm_pcm_channel_input_be_put,
4779 .private_value = (unsigned long)&(mm28_ch1_enum)
4780 },
4781 {
4782 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4783 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4784 .name = "MultiMedia28 Channel2",
4785 .info = msm_pcm_channel_input_be_info,
4786 .get = msm_pcm_channel_input_be_get,
4787 .put = msm_pcm_channel_input_be_put,
4788 .private_value = (unsigned long)&(mm28_ch2_enum)
4789 },
4790 {
4791 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4792 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4793 .name = "MultiMedia29 Channel1",
4794 .info = msm_pcm_channel_input_be_info,
4795 .get = msm_pcm_channel_input_be_get,
4796 .put = msm_pcm_channel_input_be_put,
4797 .private_value = (unsigned long)&(mm29_ch1_enum)
4798 },
4799 {
4800 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4801 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4802 .name = "MultiMedia29 Channel2",
4803 .info = msm_pcm_channel_input_be_info,
4804 .get = msm_pcm_channel_input_be_get,
4805 .put = msm_pcm_channel_input_be_put,
4806 .private_value = (unsigned long)&(mm29_ch2_enum)
4807 },
4808 {
4809 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4810 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304811 .name = "MultiMedia1 Output Channel Map",
4812 .info = msm_pcm_channel_output_map_info,
4813 .get = msm_pcm_channel_output_map_get,
4814 .put = msm_pcm_channel_output_map_put,
4815 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4816 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
4817 },
4818 {
4819 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4820 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4821 .name = "MultiMedia2 Output Channel Map",
4822 .info = msm_pcm_channel_output_map_info,
4823 .get = msm_pcm_channel_output_map_get,
4824 .put = msm_pcm_channel_output_map_put,
4825 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4826 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
4827 },
4828 {
4829 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4830 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4831 .name = "MultiMedia3 Output Channel Map",
4832 .info = msm_pcm_channel_output_map_info,
4833 .get = msm_pcm_channel_output_map_get,
4834 .put = msm_pcm_channel_output_map_put,
4835 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4836 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
4837 },
4838 {
4839 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4840 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4841 .name = "MultiMedia4 Output Channel Map",
4842 .info = msm_pcm_channel_output_map_info,
4843 .get = msm_pcm_channel_output_map_get,
4844 .put = msm_pcm_channel_output_map_put,
4845 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4846 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
4847 },
4848 {
4849 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4850 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4851 .name = "MultiMedia5 Output Channel Map",
4852 .info = msm_pcm_channel_output_map_info,
4853 .get = msm_pcm_channel_output_map_get,
4854 .put = msm_pcm_channel_output_map_put,
4855 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4856 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
4857 },
4858 {
4859 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4860 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4861 .name = "MultiMedia6 Output Channel Map",
4862 .info = msm_pcm_channel_output_map_info,
4863 .get = msm_pcm_channel_output_map_get,
4864 .put = msm_pcm_channel_output_map_put,
4865 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4866 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
4867 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304868 {
4869 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4870 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4871 .name = "MultiMedia18 Output Channel Map",
4872 .info = msm_pcm_channel_output_map_info,
4873 .get = msm_pcm_channel_output_map_get,
4874 .put = msm_pcm_channel_output_map_put,
4875 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4876 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
4877 },
4878 {
4879 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4880 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4881 .name = "MultiMedia19 Output Channel Map",
4882 .info = msm_pcm_channel_output_map_info,
4883 .get = msm_pcm_channel_output_map_get,
4884 .put = msm_pcm_channel_output_map_put,
4885 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4886 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
4887 },
4888 {
4889 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4890 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4891 .name = "MultiMedia28 Output Channel Map",
4892 .info = msm_pcm_channel_output_map_info,
4893 .get = msm_pcm_channel_output_map_get,
4894 .put = msm_pcm_channel_output_map_put,
4895 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4896 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
4897 },
4898 {
4899 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4900 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4901 .name = "MultiMedia29 Output Channel Map",
4902 .info = msm_pcm_channel_output_map_info,
4903 .get = msm_pcm_channel_output_map_get,
4904 .put = msm_pcm_channel_output_map_put,
4905 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4906 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
4907 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304908};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304909
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304910static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
4911 struct snd_ctl_elem_value *ucontrol)
4912{
4913 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
4914 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
4915 ucontrol->value.integer.value[0]);
4916 return 0;
4917}
4918
4919static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
4920 struct snd_ctl_elem_value *ucontrol)
4921{
4922 msm_ec_ref_ch = ucontrol->value.integer.value[0];
4923 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
4924 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
4925 return 0;
4926}
4927
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304928static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
4929 struct snd_ctl_elem_value *ucontrol)
4930{
4931 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
4932 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
4933 ucontrol->value.integer.value[0]);
4934 return 0;
4935}
4936
4937static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
4938 struct snd_ctl_elem_value *ucontrol)
4939{
4940 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
4941 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
4942 __func__, msm_ec_ref_ch_downmixed);
4943 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
4944 return 0;
4945}
4946
4947static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
4948 struct snd_ctl_elem_value *ucontrol)
4949{
4950 int i = 0, ret = 0;
4951 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
4952 int out_channel_idx = ((struct soc_multi_mixer_control *)
4953 kcontrol->private_value)->shift;
4954
4955 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
4956 weights[i] = ucontrol->value.integer.value[i];
4957
4958 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
4959 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
4960 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
4961 return ret;
4962}
4963
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304964static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304965 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
4966 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304967
4968static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
4969 struct snd_ctl_elem_value *ucontrol)
4970{
4971 switch (msm_ec_ref_bit_format) {
4972 case SNDRV_PCM_FORMAT_S24_LE:
4973 ucontrol->value.integer.value[0] = 2;
4974 break;
4975 case SNDRV_PCM_FORMAT_S16_LE:
4976 ucontrol->value.integer.value[0] = 1;
4977 break;
4978 default:
4979 ucontrol->value.integer.value[0] = 0;
4980 break;
4981 }
4982 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
4983 __func__, ucontrol->value.integer.value[0]);
4984 return 0;
4985}
4986
4987static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
4988 struct snd_ctl_elem_value *ucontrol)
4989{
4990 u16 bit_width = 0;
4991
4992 switch (ucontrol->value.integer.value[0]) {
4993 case 2:
4994 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
4995 break;
4996 case 1:
4997 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
4998 break;
4999 default:
5000 msm_ec_ref_bit_format = 0;
5001 break;
5002 }
5003
5004 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5005 bit_width = 16;
5006 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5007 bit_width = 24;
5008
5009 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5010 __func__, msm_ec_ref_bit_format);
5011 adm_ec_ref_rx_bit_width(bit_width);
5012 return 0;
5013}
5014
5015static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5016
5017static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5018 struct snd_ctl_elem_value *ucontrol)
5019{
5020 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5021 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5022 __func__, ucontrol->value.integer.value[0]);
5023 return 0;
5024}
5025
5026static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5027 struct snd_ctl_elem_value *ucontrol)
5028{
5029 switch (ucontrol->value.integer.value[0]) {
5030 case 0:
5031 msm_ec_ref_sampling_rate = 0;
5032 break;
5033 case 1:
5034 msm_ec_ref_sampling_rate = 8000;
5035 break;
5036 case 2:
5037 msm_ec_ref_sampling_rate = 16000;
5038 break;
5039 case 3:
5040 msm_ec_ref_sampling_rate = 32000;
5041 break;
5042 case 4:
5043 msm_ec_ref_sampling_rate = 44100;
5044 break;
5045 case 5:
5046 msm_ec_ref_sampling_rate = 48000;
5047 break;
5048 case 6:
5049 msm_ec_ref_sampling_rate = 96000;
5050 break;
5051 case 7:
5052 msm_ec_ref_sampling_rate = 192000;
5053 break;
5054 case 8:
5055 msm_ec_ref_sampling_rate = 384000;
5056 break;
5057 default:
5058 msm_ec_ref_sampling_rate = 48000;
5059 break;
5060 }
5061 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5062 __func__, msm_ec_ref_sampling_rate);
5063 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5064 return 0;
5065}
5066
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305067static int get_ec_ref_port_id(int value, int *index)
5068{
5069 int port_id;
5070
5071 switch (value) {
5072 case 0:
5073 *index = 0;
5074 port_id = AFE_PORT_INVALID;
5075 break;
5076 case 1:
5077 *index = 1;
5078 port_id = SLIMBUS_0_RX;
5079 break;
5080 case 2:
5081 *index = 2;
5082 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5083 break;
5084 case 3:
5085 *index = 3;
5086 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5087 break;
5088 case 4:
5089 *index = 4;
5090 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5091 break;
5092 case 5:
5093 *index = 5;
5094 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5095 break;
5096 case 6:
5097 *index = 6;
5098 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5099 break;
5100 case 7:
5101 *index = 7;
5102 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5103 break;
5104 case 9:
5105 *index = 9;
5106 port_id = SLIMBUS_5_RX;
5107 break;
5108 case 10:
5109 *index = 10;
5110 port_id = SLIMBUS_1_TX;
5111 break;
5112 case 11:
5113 *index = 11;
5114 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5115 break;
5116 case 12:
5117 *index = 12;
5118 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5119 break;
5120 case 13:
5121 *index = 13;
5122 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5123 break;
5124 case 14:
5125 *index = 14;
5126 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5127 break;
5128 case 15:
5129 *index = 15;
5130 port_id = SLIMBUS_6_RX;
5131 break;
5132 case 16:
5133 *index = 16;
5134 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5135 break;
5136 case 17:
5137 *index = 17;
5138 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5139 break;
5140 case 18:
5141 *index = 18;
5142 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5143 break;
5144 case 19:
5145 *index = 19;
5146 port_id = AFE_PORT_ID_USB_RX;
5147 break;
5148 case 20:
5149 *index = 20;
5150 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5151 break;
5152 case 21:
5153 *index = 21;
5154 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5155 break;
5156 case 22:
5157 *index = 22;
5158 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5159 break;
5160 case 23:
5161 *index = 23;
5162 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5163 break;
5164 case 24:
5165 *index = 24;
5166 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5167 break;
5168 case 25:
5169 *index = 25;
5170 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5171 break;
5172 case 26:
5173 *index = 26;
5174 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5175 break;
5176 case 27:
5177 *index = 27;
5178 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5179 break;
5180 case 28:
5181 *index = 28;
5182 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5183 break;
5184 case 29:
5185 *index = 29;
5186 port_id = SLIMBUS_7_RX;
5187 break;
5188 case 30:
5189 *index = 30;
5190 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5191 break;
5192 case 31:
5193 *index = 31;
5194 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5195 break;
5196 case 32:
5197 *index = 32;
5198 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5199 break;
5200 case 33:
5201 *index = 33;
5202 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5203 break;
5204 case 34:
5205 *index = 34;
5206 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5207 break;
5208 case 35:
5209 *index = 35;
5210 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5211 break;
5212 case 36:
5213 *index = 36;
5214 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5215 break;
5216 default:
5217 *index = 0; /* NONE */
5218 pr_err("%s: Invalid value %d\n", __func__, value);
5219 port_id = AFE_PORT_INVALID;
5220 break;
5221 }
5222
5223 return port_id;
5224}
5225
5226static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5227 struct snd_ctl_elem_value *ucontrol)
5228{
5229 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5230 mutex_lock(&routing_lock);
5231 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5232 mutex_unlock(&routing_lock);
5233
5234 return 0;
5235}
5236
5237static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5238 struct snd_ctl_elem_value *ucontrol)
5239{
5240 int value = ucontrol->value.integer.value[0];
5241
5242 mutex_lock(&routing_lock);
5243 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5244 &afe_loopback_tx_port_index);
5245 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5246 __func__, afe_loopback_tx_port_index);
5247 mutex_unlock(&routing_lock);
5248
5249 return 0;
5250}
5251
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305252static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5253 "32000", "44100", "48000", "96000", "192000", "384000"};
5254
5255static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305256 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305257 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
5258 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
5259};
5260
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305261static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5262 "PRI_MI2S_TX", "SEC_MI2S_TX",
5263 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5264 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5265 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5266 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305267 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
5268 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005269 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305270 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
Derek Chen2bb55772018-10-24 00:17:15 -07005271 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305272};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305273
5274static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5275 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5276};
5277
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305278static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5279 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5280 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5281 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5282 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5283 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5284 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5285 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5286 msm_route_ec_ref_params_enum[0],
5287 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5288 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5289 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5290 msm_ec_ref_chmixer_weights_put),
5291 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5292 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5293 msm_ec_ref_chmixer_weights_put),
5294 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
5295 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5296 msm_ec_ref_chmixer_weights_put),
5297 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
5298 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5299 msm_ec_ref_chmixer_weights_put),
5300 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5301 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5302 msm_ec_ref_chmixer_weights_put),
5303 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5304 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5305 msm_ec_ref_chmixer_weights_put),
5306 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5307 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5308};
5309
5310static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5311 struct snd_ctl_elem_value *ucontrol)
5312{
5313 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5314 mutex_lock(&routing_lock);
5315 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5316 mutex_unlock(&routing_lock);
5317
5318 return 0;
5319}
5320
5321static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5322 struct snd_ctl_elem_value *ucontrol)
5323{
5324 int value = ucontrol->value.integer.value[0];
5325 struct snd_soc_dapm_widget *widget =
5326 snd_soc_dapm_kcontrol_widget(kcontrol);
5327 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5328 struct snd_soc_dapm_update *update = NULL;
5329
5330 mutex_lock(&routing_lock);
5331 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5332 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5333 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5334 __func__, msm_route_ec_ref_rx);
5335 mutex_unlock(&routing_lock);
5336
5337 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5338 msm_route_ec_ref_rx, e, update);
5339 return 0;
5340}
5341
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5343 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5344 msm_route_ec_ref_rx_enum[0],
5345 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5346
5347static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5348 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5349 msm_route_ec_ref_rx_enum[0],
5350 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5351
5352static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5353 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5354 msm_route_ec_ref_rx_enum[0],
5355 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5356
5357static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5358 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5359 msm_route_ec_ref_rx_enum[0],
5360 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5361
5362static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5363 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5364 msm_route_ec_ref_rx_enum[0],
5365 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5366
5367static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5368 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5369 msm_route_ec_ref_rx_enum[0],
5370 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5371
5372static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5373 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5374 msm_route_ec_ref_rx_enum[0],
5375 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5376
5377static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5378 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5379 msm_route_ec_ref_rx_enum[0],
5380 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5381
Asish Bhattacharya34504582017-08-08 12:55:01 +05305382static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5383 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5384 msm_route_ec_ref_rx_enum[0],
5385 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5386
Laxminath Kasam38070be2017-08-17 18:21:59 +05305387static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5388 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5389 msm_route_ec_ref_rx_enum[0],
5390 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5391
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305392static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5393 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5394 msm_route_ec_ref_rx_enum[0],
5395 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5396
5397static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5398 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5399 msm_route_ec_ref_rx_enum[0],
5400 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5401
5402static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5403 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5404 msm_route_ec_ref_rx_enum[0],
5405 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5406
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305407static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5408 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5409 msm_route_ec_ref_rx_enum[0],
5410 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5411
5412static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5413 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5414 msm_route_ec_ref_rx_enum[0],
5415 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5416
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5418 struct snd_ctl_elem_value *ucontrol)
5419{
5420 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5421
5422 mutex_lock(&routing_lock);
5423 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5424 mutex_unlock(&routing_lock);
5425 return 0;
5426}
5427
5428static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5429 struct snd_ctl_elem_value *ucontrol)
5430{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305431 struct snd_soc_dapm_widget *widget =
5432 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 int mux = ucontrol->value.enumerated.item[0];
5434 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5435 int ret = 1;
5436 bool state = true;
5437 uint16_t ext_ec_ref_port_id;
5438 struct snd_soc_dapm_update *update = NULL;
5439
5440 if (mux >= e->items) {
5441 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5442 return -EINVAL;
5443 }
5444
5445 mutex_lock(&routing_lock);
5446 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5447
5448 switch (msm_route_ext_ec_ref) {
5449 case EXT_EC_REF_PRI_MI2S_TX:
5450 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5451 break;
5452 case EXT_EC_REF_SEC_MI2S_TX:
5453 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5454 break;
5455 case EXT_EC_REF_TERT_MI2S_TX:
5456 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5457 break;
5458 case EXT_EC_REF_QUAT_MI2S_TX:
5459 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5460 break;
5461 case EXT_EC_REF_QUIN_MI2S_TX:
5462 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5463 break;
5464 case EXT_EC_REF_SLIM_1_TX:
5465 ext_ec_ref_port_id = SLIMBUS_1_TX;
5466 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005467 case EXT_EC_REF_SEC_TDM_TX:
5468 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5469 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305470 case EXT_EC_REF_NONE:
5471 default:
5472 ext_ec_ref_port_id = AFE_PORT_INVALID;
5473 state = false;
5474 break;
5475 }
5476
5477 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5478 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5479
5480 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5481 mutex_unlock(&routing_lock);
5482 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5483 update);
5484 } else {
5485 ret = -EINVAL;
5486 mutex_unlock(&routing_lock);
5487 }
5488 return ret;
5489}
5490
5491static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5492 "SEC_MI2S_TX", "TERT_MI2S_TX",
5493 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005494 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305495
5496static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5497 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5498};
5499
5500static const struct snd_kcontrol_new voc_ext_ec_mux =
5501 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5502 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5503
5504
5505static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005506 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5507 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305508 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005510 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5511 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005514 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305516 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005518 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305520 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005522 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305524 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005526 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305528 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005530 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305532 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005534 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5535 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305536 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005538 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5539 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305540 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005542 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5543 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305544 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005546 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5547 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305548 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005550 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5551 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305552 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005554 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5555 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305556 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005558 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5559 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305560 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005562 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5563 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305564 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005566 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5567 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305568 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005570 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5571 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305572 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005574 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5575 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305576 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005578 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5579 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305580 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5581 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305582 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5583 MSM_BACKEND_DAI_PRI_I2S_RX,
5584 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005586 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5587 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305588 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005590 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5591 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305592 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5593 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305594};
5595
5596static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005597 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5598 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305599 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005601 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5602 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305603 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005605 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5606 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305607 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005609 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5610 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305611 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005613 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5614 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305615 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005617 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5618 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305619 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005621 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5622 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305623 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005625 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5626 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305627 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005629 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5630 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305631 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005633 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5634 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305635 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005637 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5638 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305639 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005641 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5642 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305643 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005645 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5646 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305647 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005649 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5650 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305651 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005653 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5654 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305655 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005657 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5658 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305659 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005661 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5662 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305663 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005665 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5666 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305667 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005669 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5670 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305671 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5672 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305673 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5674 MSM_BACKEND_DAI_SEC_I2S_RX,
5675 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005677 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5678 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305679 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005681 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5682 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305683 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5684 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305685};
5686
Ralf Herzc8701f72018-06-20 11:37:35 +02005687static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005688 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005689 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305690 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005692 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005693 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305694 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005696 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005697 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305698 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005700 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005701 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305702 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005704 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005705 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305706 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005708 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005709 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305710 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005712 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005713 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305714 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005716 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005717 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305718 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005720 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005721 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305722 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005724 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005725 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305726 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005728 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005729 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305730 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005732 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005733 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305734 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005736 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005737 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305738 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005740 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005741 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305742 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005744 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005745 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305746 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005748 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005749 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305750 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005752 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005753 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305754 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005756 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005757 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305758 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005760 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005761 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305762 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305764 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5766 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005768 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005769 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305770 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005772 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005773 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5774 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
5776};
5777
5778static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
5779 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5780 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5781 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5782 msm_routing_put_audio_mixer),
5783 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5784 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5785 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5786 msm_routing_put_audio_mixer),
5787 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5788 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5789 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5790 msm_routing_put_audio_mixer),
5791 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5792 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5793 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5794 msm_routing_put_audio_mixer),
5795 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5796 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5797 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5798 msm_routing_put_audio_mixer),
5799 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5800 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5801 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5802 msm_routing_put_audio_mixer),
5803 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5804 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5805 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5806 msm_routing_put_audio_mixer),
5807 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5808 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5809 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5810 msm_routing_put_audio_mixer),
5811 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5812 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5813 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5814 msm_routing_put_audio_mixer),
5815 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5816 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5817 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5818 msm_routing_put_audio_mixer),
5819 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5820 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5821 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5822 msm_routing_put_audio_mixer),
5823 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5824 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5825 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5826 msm_routing_put_audio_mixer),
5827 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5829 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
5831 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5833 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
5835 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5837 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
5839 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5841 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
5843 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5845 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
5847 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5849 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
5851 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5853 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305855 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5857 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02005859 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5861 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
5863 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305865 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305867};
5868
5869static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005870 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5871 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305872 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005874 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5875 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305876 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005878 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5879 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305880 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005882 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5883 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005886 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5887 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305888 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005890 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5891 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305892 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005894 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305896 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005898 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5899 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305900 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005902 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5903 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305904 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005906 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005910 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305912 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005914 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305916 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005918 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305920 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005922 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305924 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005926 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305928 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005930 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5931 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305934 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5935 MSM_BACKEND_DAI_SLIMBUS_2_RX,
5936 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305938};
5939
5940static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005941 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5942 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305943 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005945 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5946 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305947 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005949 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5950 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305951 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005953 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5954 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305955 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005957 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5958 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305959 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005961 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305963 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005965 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305967 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005969 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5970 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305971 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005973 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5974 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305975 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005977 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5978 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305979 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005981 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5982 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305983 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005985 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5986 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305987 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005989 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5990 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305991 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005993 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5994 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305995 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005997 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5998 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305999 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006001 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6002 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306003 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006005 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306007 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006009 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306011 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006013 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306015 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306017 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6019 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006021 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306023 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006025 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6026 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306027 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6028 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306029};
6030
6031static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006032 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306034 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006036 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306038 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006040 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306042 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006044 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306046 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006048 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306050 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006052 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306054 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006056 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306058 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006060 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306062 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006064 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306066 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006068 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306070 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006072 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306074 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006076 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306078 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006080 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306082 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006084 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306086 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006088 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306090 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006092 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6093 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306094 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006096 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6097 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306098 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006100 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6101 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306102 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006104 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6105 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306106 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6107 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306108 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6110 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006112 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306114 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006116 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306118 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306120};
6121
6122static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006123 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306125 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006127 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306129 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006131 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306133 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006135 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306137 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006139 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306141 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006143 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306145 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006147 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306149 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006151 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306153 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006155 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306157 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006159 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6160 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006163 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6164 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306165 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006167 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6168 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306169 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006171 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6172 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306173 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006175 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306177 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006179 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306181 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006183 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306185 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006187 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306189 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006191 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306193 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006195 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306197 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306199 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_MI2S_RX,
6201 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006203 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306205 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006207 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306209 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306211};
6212
6213static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006214 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306216 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006218 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306220 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006222 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306224 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006226 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6227 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306228 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006230 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6231 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306232 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006234 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6235 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306236 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006238 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6239 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306240 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006242 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306244 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006246 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306248 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006250 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306252 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006254 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306256 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006258 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306260 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006262 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306264 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006266 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306268 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006270 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306272 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006274 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306276 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006278 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306280 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006282 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306284 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006286 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306288 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306290 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6292 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006294 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306296 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006298 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306300 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306302};
6303
6304static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006305 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306307 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006309 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306311 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006313 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306315 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006317 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306319 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006321 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306323 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006325 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306327 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006329 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306331 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006333 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306335 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006337 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306339 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006341 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306343 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006345 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306347 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006349 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6350 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306351 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006353 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306355 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006357 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306359 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006361 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306363 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006365 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306367 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006369 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306371 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006373 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306375 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006377 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306379 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306381 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6382 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6383 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006385 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306387 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006389 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306391 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
6393
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306394};
6395
Karthikeyan Manic3700752019-03-11 18:33:53 -07006396static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6397 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6399 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
6401 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6403 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
6405 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6407 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
6409 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6411 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
6413 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6415 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
6417 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6419 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
6421 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6423 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
6425 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6427 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
6429 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6431 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
6433 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6434 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6435 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6436 msm_routing_put_audio_mixer),
6437 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6438 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6439 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6440 msm_routing_put_audio_mixer),
6441 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6442 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6443 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6444 msm_routing_put_audio_mixer),
6445 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6446 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6447 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6448 msm_routing_put_audio_mixer),
6449 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6450 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6451 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6452 msm_routing_put_audio_mixer),
6453 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6454 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6455 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6456 msm_routing_put_audio_mixer),
6457 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6458 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6459 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6460 msm_routing_put_audio_mixer),
6461 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6462 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6463 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6464 msm_routing_put_audio_mixer),
6465 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6466 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6467 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6468 msm_routing_put_audio_mixer),
6469 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6470 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6471 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6472 msm_routing_put_audio_mixer),
6473 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6474 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6475 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6476 msm_routing_put_audio_mixer),
6477 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6478 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6479 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6480 msm_routing_put_audio_mixer),
6481 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6482 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6483 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6484 msm_routing_put_audio_mixer),
6485
6486};
6487
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306488static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006489 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6490 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306491 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006493 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6494 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306495 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006497 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306499 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006501 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306503 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006521 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306557 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6559 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006561 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006565 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306569};
6570
6571static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006572 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6573 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306574 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6575 msm_routing_put_audio_mixer),
6576};
6577
6578static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006579 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6580 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306581 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006583 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6584 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306585 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006587 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6588 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006591 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6592 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306593 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006595 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6596 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006599 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6600 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306601 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006603 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6604 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306605 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006607 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6608 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006611 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6612 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306613 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006615 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6616 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306617 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006619 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6620 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306621 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006623 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6624 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306625 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006627 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6628 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306629 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006631 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6632 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306633 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006635 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6636 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306637 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006639 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6640 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306641 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006643 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6644 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306645 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006647 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6648 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306649 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006651 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6652 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306653 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6654 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306655 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6657 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006659 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306661 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006663 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306665 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306667};
6668
6669static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006670 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6671 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306672 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006674 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6675 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306676 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006678 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6679 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306680 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006682 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6683 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006686 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6687 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306688 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006690 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6691 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306692 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006694 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6695 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306696 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006698 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6699 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306700 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006702 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6703 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306704 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006706 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6707 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306708 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006710 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6711 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306712 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006714 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6715 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306716 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006718 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6719 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306720 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006722 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6723 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306724 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006726 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6727 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306728 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006730 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306732 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006734 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306736 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006738 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006742 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306746 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_PRI_MI2S_RX,
6748 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006750 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006754 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
6758
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306759};
6760
6761static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006806 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306808 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006818 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306820 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006822 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306824 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
6826};
6827
6828static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
6893};
6894
6895static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006896 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006900 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306902 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006904 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006908 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006912 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006968 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306972 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_HDMI_RX,
6974 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006980 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306982 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306984};
6985
6986static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006987 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006991 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006995 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306997 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006999 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007003 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307005 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007039 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307041 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007043 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307045 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307051 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7053 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307055};
7056
Karthikeyan Mani57550082018-05-03 18:43:58 -07007057static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7058 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7059 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7060 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7061 msm_routing_put_audio_mixer),
7062 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7063 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7064 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7065 msm_routing_put_audio_mixer),
7066 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7067 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7068 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7069 msm_routing_put_audio_mixer),
7070 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7071 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7072 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7073 msm_routing_put_audio_mixer),
7074 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7076 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
7078 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7080 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
7082 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7084 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
7086 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7088 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
7090 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7092 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
7094 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7096 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
7098 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7100 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
7102 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7104 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
7106 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7107 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7108 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7109 msm_routing_put_audio_mixer),
7110 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7111 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7112 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7113 msm_routing_put_audio_mixer),
7114 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7116 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
7118 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7120 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307122 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7124 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007126};
7127
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307128 /* incall music delivery mixer */
7129static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007130 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7131 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007134 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7135 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307136 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007138 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7139 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307140 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007142 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7143 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307144 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7145 msm_routing_put_audio_mixer),
7146};
7147
7148static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007153 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307155 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007157 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007161 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307163 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
7165};
7166
7167static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007168 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307170 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007172 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7173 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307174 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007176 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7177 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307178 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007180 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
7184};
7185
7186static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007203 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007211 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007223 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007227 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007231 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007235 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007239 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307251 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7253 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307255};
7256
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307257static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7258 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7259 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7260 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7261 msm_routing_put_audio_mixer),
7262 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7263 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7264 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7265 msm_routing_put_audio_mixer),
7266 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7268 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
7270 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7272 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
7274 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7276 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
7278 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7280 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
7282 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7284 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
7286 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7288 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
7290 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7292 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
7294 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7296 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
7298 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7300 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
7302 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7304 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
7306 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7308 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
7310 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7312 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
7314 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7316 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
7318 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7320 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307322 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7324 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307326};
7327
7328static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7329 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7330 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7331 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7332 msm_routing_put_audio_mixer),
7333 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7334 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7335 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7336 msm_routing_put_audio_mixer),
7337 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7338 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7339 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7340 msm_routing_put_audio_mixer),
7341 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7342 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7343 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7344 msm_routing_put_audio_mixer),
7345 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7346 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7347 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7348 msm_routing_put_audio_mixer),
7349 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7351 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
7353 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7355 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
7357 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7359 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
7361 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7363 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
7365 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7367 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
7369 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7371 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
7373 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7375 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
7377 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7379 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
7381 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7383 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
7385 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7387 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
7389 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7391 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307393 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7395 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307397};
7398
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307399static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7400 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7401 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7402 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7403 msm_routing_put_audio_mixer),
7404 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7405 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7406 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7407 msm_routing_put_audio_mixer),
7408 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7409 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7410 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7411 msm_routing_put_audio_mixer),
7412 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7413 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7414 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7415 msm_routing_put_audio_mixer),
7416 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7417 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7418 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7419 msm_routing_put_audio_mixer),
7420 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7422 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
7424 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7426 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
7428 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7430 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
7432 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7434 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
7436 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7438 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
7440 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7442 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
7444 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7446 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
7448 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7450 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
7452 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7454 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
7456 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7458 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
7460 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7462 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307464 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7466 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307468};
7469
7470static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7471 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7473 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7474 msm_routing_put_audio_mixer),
7475 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7477 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7478 msm_routing_put_audio_mixer),
7479 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7481 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7482 msm_routing_put_audio_mixer),
7483 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7484 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7485 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7486 msm_routing_put_audio_mixer),
7487 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7488 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7489 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7490 msm_routing_put_audio_mixer),
7491 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7493 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
7495 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7497 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
7499 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7501 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
7503 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7505 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
7507 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7509 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
7511 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7513 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
7515 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7517 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
7519 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7521 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
7523 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7525 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
7527 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7529 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
7531 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7533 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307535 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7537 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307539};
7540
7541static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
7542 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7543 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7544 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7545 msm_routing_put_audio_mixer),
7546 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7547 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7548 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7549 msm_routing_put_audio_mixer),
7550 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7551 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7552 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7553 msm_routing_put_audio_mixer),
7554 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7555 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7556 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7557 msm_routing_put_audio_mixer),
7558 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7560 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
7562 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7564 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
7566 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7568 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
7570 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7572 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
7574 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7576 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
7578 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7580 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
7582 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7584 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
7586 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7588 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
7590 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7592 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
7594 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7596 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
7598 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7600 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
7602 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7604 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307606 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7608 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307610};
7611
7612static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
7613 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7614 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7615 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7616 msm_routing_put_audio_mixer),
7617 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7618 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7619 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7620 msm_routing_put_audio_mixer),
7621 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7622 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7623 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7624 msm_routing_put_audio_mixer),
7625 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7627 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
7629 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7631 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
7633 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7635 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
7637 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7639 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
7641 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7643 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
7645 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7647 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
7649 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7651 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
7653 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7655 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
7657 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7659 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
7661 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7663 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
7665 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7667 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
7669 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7671 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
7673 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7675 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307677 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7679 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307681};
7682
7683static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
7684 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7685 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7686 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7687 msm_routing_put_audio_mixer),
7688 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7689 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7690 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7691 msm_routing_put_audio_mixer),
7692 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7693 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7694 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7695 msm_routing_put_audio_mixer),
7696 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7698 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
7700 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7702 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
7704 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7706 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
7708 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7710 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
7712 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7714 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
7716 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7718 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
7720 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7722 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
7724 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7726 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
7728 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7730 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
7732 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7734 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
7736 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7738 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
7740 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7742 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
7744 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7746 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307748 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7750 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307752};
7753
7754static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
7755 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7756 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7757 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7758 msm_routing_put_audio_mixer),
7759 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7761 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
7763 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7765 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
7767 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7769 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
7771 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7773 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
7775 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7777 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
7779 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7781 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
7783 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7785 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
7787 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7789 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
7791 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7793 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
7795 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7797 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
7799 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7801 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
7803 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7805 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
7807 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7809 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
7811 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7813 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
7815 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7817 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307819 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
7821 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307823};
7824
7825static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
7826 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7827 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7828 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7829 msm_routing_put_audio_mixer),
7830 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7831 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7832 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7833 msm_routing_put_audio_mixer),
7834 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7836 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
7838 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7840 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
7842 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7844 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
7846 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7848 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
7850 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7852 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
7854 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7856 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
7858 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7860 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
7862 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7864 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
7866 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7868 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
7870 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7872 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
7874 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7876 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
7878 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7880 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
7882 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7884 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
7886 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7888 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307890 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
7892 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307894};
7895
7896static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
7897 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7898 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7899 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7900 msm_routing_put_audio_mixer),
7901 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7903 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7904 msm_routing_put_audio_mixer),
7905 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7907 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
7909 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7911 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
7913 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7915 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
7917 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7919 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
7921 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7923 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
7925 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7927 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
7929 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7931 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
7933 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7935 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
7937 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7939 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
7941 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7943 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
7945 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7947 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
7949 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7951 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
7953 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7955 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
7957 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7959 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307961 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
7963 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307965};
7966
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307967static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007968 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7969 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307970 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007972 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7973 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307974 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007976 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307978 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007996 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308032 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8034 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308036};
8037
Surendar Karka3ef3d812018-09-28 18:52:35 +05308038static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8039 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8040 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8041 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8042 msm_routing_put_audio_mixer),
8043 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8044 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8045 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8046 msm_routing_put_audio_mixer),
8047 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8049 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
8051 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8053 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
8055 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8057 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
8059 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8061 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
8063 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8065 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
8067 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8069 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
8071 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8073 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
8075 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8077 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
8079 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8081 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
8083 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8085 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
8087 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8089 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
8091 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8093 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
8095 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8097 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
8099 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8101 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
8103 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8105 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
8107};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308108static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008109 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8110 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308111 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008113 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8114 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008117 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8118 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308119 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008121 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8122 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308123 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008125 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8126 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308127 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008129 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8130 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308131 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008133 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8134 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308135 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008137 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8138 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308139 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008141 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8142 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308143 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008145 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8146 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308147 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008149 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8150 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308151 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008153 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8154 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308155 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008157 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8158 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308159 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008161 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8162 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308163 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008165 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8166 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308167 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008169 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8170 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308171 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8172 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308173 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8174 MSM_BACKEND_DAI_USB_RX,
8175 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8176 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308177};
8178
8179static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008180 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8181 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308182 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008184 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8185 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308186 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008188 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8189 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308190 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008192 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8193 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308194 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008196 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8197 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308198 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008200 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8201 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308202 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008204 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8205 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308206 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008208 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8209 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308210 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008212 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8213 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308214 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008216 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8217 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308218 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008220 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8221 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308222 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008224 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8225 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308226 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008228 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8229 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308230 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008232 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8233 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308234 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008236 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8237 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308238 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008240 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8241 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308242 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008244 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8245 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308246 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008248 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8249 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308250 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008252 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8253 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308254 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8255 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308256 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8258 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308268};
8269
8270static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008271 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8272 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308273 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008275 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8276 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308277 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008279 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8280 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308281 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008283 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8284 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308285 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008287 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8288 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308289 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008291 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8292 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308293 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008295 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8296 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308297 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008299 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8300 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308301 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008303 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8304 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308305 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008307 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8308 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308309 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008311 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8312 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308313 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008315 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8316 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308317 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008319 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8320 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308321 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008323 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8324 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308325 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008327 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308329 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308335 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8337 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308339};
8340
8341static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008342 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8343 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308344 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008346 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8347 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308348 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008350 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8351 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308352 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008354 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308356 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008358 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308360 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008362 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8363 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308364 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008366 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8367 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308368 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008370 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8371 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308372 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008374 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8375 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308376 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008378 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8379 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308380 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008382 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8383 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308384 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008386 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8387 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308388 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008390 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8391 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308392 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008394 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8395 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308396 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008398 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308400 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008402 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308404 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308418 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_INT_FM_RX,
8420 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308430};
8431
8432static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008433 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8434 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308435 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008437 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8438 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008441 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8442 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308443 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008445 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8446 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308447 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008449 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8450 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008453 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008457 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308459 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008461 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308509 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_AFE_PCM_RX,
8511 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308521};
8522
8523static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008524 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8525 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308526 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008528 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8529 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308530 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008532 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308534 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008536 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008540 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008544 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008600 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_AUXPCM_RX,
8602 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308604 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_AUXPCM_RX,
8606 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616};
8617
8618static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008619 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308621 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008667 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008671 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008691 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008695 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
8697 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308699 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
8701 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008703 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008707 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308709 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711};
8712
8713static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008766 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308768 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008770 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8771 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308772 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008774 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8775 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308776 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8777 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308778 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8779 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
8780 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8781 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782};
8783
8784static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008837 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308839 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008841 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8842 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308843 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008845 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8846 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308847 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8848 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308849 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8850 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
8851 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8852 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308853};
8854
Rohit Kumara5077932017-09-10 22:05:05 +05308855static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008876 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008880 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308882 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008884 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8885 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308886 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008908 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008912 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008916 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308920 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
8922 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308924};
Karthikeyan Manic3700752019-03-11 18:33:53 -07008925
8926static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
8927 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8929 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
8931 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8933 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
8935 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8937 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
8939 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8941 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
8943 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8945 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
8947 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8949 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
8951 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8953 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
8955 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8957 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
8959 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8961 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
8963 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8965 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
8967 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8969 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
8971 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8973 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
8975 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8977 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
8979 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8981 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
8983 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8985 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
8987 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8988 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8989 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8990 msm_routing_put_audio_mixer),
8991 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
8993 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
8995};
8996
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308997static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009030 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309032 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009058 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309060 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009062 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9064 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309066};
9067
9068static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009133 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9135 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309137};
9138
9139static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009168 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009172 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009204 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9206 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309208};
9209
9210static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009211 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9212 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309213 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009215 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9216 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309217 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009275 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9277 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309279};
9280
9281static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009282 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9283 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309284 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009286 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9287 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309288 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009290 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9291 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309292 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
9346};
9347
9348static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009349 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9350 MSM_BACKEND_DAI_SEC_TDM_RX_0,
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("MultiMedia2", SND_SOC_NOPM,
9354 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309355 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009357 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9358 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309359 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009413 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9415 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309417};
9418
9419static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009420 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309422 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009424 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009428 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309430 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009432 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309434 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009436 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309438 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009440 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309442 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009444 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309446 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009448 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309450 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009452 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309454 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009456 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309458 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009460 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309462 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009464 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309466 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009468 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309470 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009472 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309474 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009476 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309478 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009480 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309482 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009484 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9486 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309488};
9489
9490static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009511 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009515 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009555 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_SEC_TDM_RX_2,
9557 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309559};
9560
9561static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009562 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9563 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309564 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009566 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9567 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309568 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009570 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9571 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309572 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009574 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9575 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309576 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009578 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9579 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309580 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009582 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9583 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309584 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009586 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9587 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309588 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009590 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9591 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309592 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009594 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9595 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309596 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009598 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9599 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309600 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009614 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9615 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309616 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009618 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309620 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009622 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9623 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309624 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9625 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009626 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_SEC_TDM_RX_3,
9628 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309630};
9631
9632static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009633 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009637 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009641 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009645 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009649 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009653 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009657 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
9697};
9698
9699static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009700 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309702 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009704 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309706 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009708 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309710 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009712 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309714 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009716 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309718 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009720 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9721 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009724 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9725 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309726 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009728 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9729 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009732 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9733 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309734 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009736 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9737 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309738 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009740 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9741 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309742 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009744 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9745 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309746 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009748 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9749 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309750 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009752 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9753 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309754 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009756 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309758 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009760 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009764 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_TERT_TDM_RX_0,
9766 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309768};
9769
9770static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009771 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9772 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309773 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009775 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309777 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009779 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("MultiMedia4", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309785 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009787 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9788 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009791 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9792 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309793 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009795 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9796 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309797 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009799 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9800 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309801 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009803 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309805 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009807 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309809 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009811 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309813 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009815 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309817 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009819 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309821 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009823 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009827 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309829 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009831 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9834 msm_routing_put_audio_mixer),
9835};
9836
9837static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009838 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9839 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309840 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009842 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309844 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009846 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309848 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009850 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009854 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9855 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309856 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009858 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309860 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009862 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9863 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309864 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009866 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9867 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309868 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009870 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9871 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309872 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009874 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9875 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009878 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9879 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309880 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009882 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9883 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309884 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009886 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9887 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309888 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009890 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9891 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309892 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009894 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9895 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309896 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009898 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9899 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309900 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9901 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009902 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9903 MSM_BACKEND_DAI_TERT_TDM_RX_1,
9904 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9905 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309906};
9907
9908static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009909 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309911 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009913 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309915 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009917 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309919 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009921 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309923 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009925 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009929 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9930 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309931 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009933 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309935 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009937 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309939 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009941 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9942 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309943 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009945 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309947 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009949 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9950 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309951 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009953 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9954 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309955 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009957 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9958 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309959 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009961 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9962 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309963 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009965 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9966 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309967 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009969 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9970 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309971 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9972 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009973 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9974 MSM_BACKEND_DAI_TERT_TDM_RX_2,
9975 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9976 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309977};
9978
9979static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009980 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9981 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009984 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9985 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009988 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9989 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309990 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009992 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009996 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010000 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010004 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10005 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010006 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010008 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10009 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010010 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010012 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10013 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010016 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10017 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010018 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010020 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010022 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010024 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010026 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010028 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010030 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010032 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010034 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010036 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010038 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010040 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10041 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10043 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010044 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10045 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10046 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10047 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010048};
10049
10050static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010051 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10052 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010053 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010055 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10056 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010057 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010059 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10060 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010061 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010063 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10064 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010065 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010067 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10068 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010069 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010071 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010073 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010075 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010077 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010079 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010083 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010087 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010089 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010091 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10092 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010093 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010095 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010099 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010103 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010105 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010107 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010109 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010111 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010113 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010115 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10117 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010119};
10120
10121static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010122 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10123 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010124 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010126 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10127 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010128 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010130 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10131 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010132 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010134 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10135 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010136 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010138 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10139 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010140 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010142 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010144 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010146 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010148 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010150 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010152 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010154 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10155 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010156 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010158 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10159 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010160 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010162 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010164 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010166 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010168 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010170 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010172 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010174 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010176 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010178 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010180 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010182 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010184 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010186 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010190 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10192 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010194};
10195
10196static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010197 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10198 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010201 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10202 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010203 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010205 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10206 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010207 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010209 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010211 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010213 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010215 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010217 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010219 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010221 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10222 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010223 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010225 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10226 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010227 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010229 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10230 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010231 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010233 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10234 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010235 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010237 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010239 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010241 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010243 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010245 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010247 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010249 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010251 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010253 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10254 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010255 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010257 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010259 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10260 msm_routing_put_audio_mixer),
10261};
10262
10263static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010264 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010266 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010268 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10269 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010270 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010272 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10273 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010274 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010276 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10277 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010278 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010280 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10281 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010282 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010284 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10285 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
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("MultiMedia7", SND_SOC_NOPM,
10289 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010290 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010292 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10293 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010294 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010296 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10297 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010298 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010300 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10301 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010302 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010304 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10305 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010306 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010308 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10309 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010310 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010312 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10313 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010314 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010316 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10317 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010318 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010320 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10321 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010322 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010324 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10325 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010326 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010328 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10329 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010330 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10331 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010332 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10334 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010336};
10337
10338static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010339 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10340 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010341 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010343 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10344 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010345 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010347 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10348 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010349 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010351 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10352 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010353 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010355 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10356 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010357 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010359 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10360 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010361 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010363 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10364 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010365 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010367 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10368 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010369 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010371 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10372 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010373 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010375 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10376 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010377 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010379 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10380 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010381 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010383 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10384 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010387 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10388 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010389 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010391 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10392 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010393 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010395 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10396 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010397 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010399 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010401 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010403 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10406 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010407 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10409 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010411};
10412
10413static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010414 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10415 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010416 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010418 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10419 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010420 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010422 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010424 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010426 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010428 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010430 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10431 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010432 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010434 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10435 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010436 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010438 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10439 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010440 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010442 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10443 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010444 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010446 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10447 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010448 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010450 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010452 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010454 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010456 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010458 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10459 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010460 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010462 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10463 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010464 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010482 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
10484 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010486};
10487
Rohit Kumara5077932017-09-10 22:05:05 +053010488static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010489 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10490 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010491 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010493 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10494 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010495 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010497 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010499 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010501 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010503 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010505 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010507 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010509 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010511 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010513 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10514 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010515 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010517 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10518 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010519 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010521 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10522 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010523 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010525 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10526 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010527 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010529 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010531 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010533 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010535 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010537 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010539 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010541 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010543 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010545 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010547 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010551 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010553 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010555 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010557 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
10559 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010561};
10562
10563static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010564 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10565 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010566 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010568 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10569 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010570 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010572 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10573 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010574 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010576 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010578 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010580 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010582 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010584 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010586 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010588 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010590 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010592 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010594 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010596 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010598 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010600 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010602 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010604 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010606 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010608 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010610 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010612 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010614 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010616 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010618 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010620 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010622 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010624 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010626 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
10628};
10629
10630static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010631 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010633 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010635 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10636 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010637 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010639 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10640 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010643 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10644 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010645 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010647 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010649 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010651 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010653 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010655 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010657 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010659 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010661 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010663 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10664 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010665 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010667 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010669 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010671 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010673 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010675 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010677 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010679 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010681 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010683 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010685 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010687 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010689 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010699 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
10701 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010703};
10704
10705static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010706 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10707 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010708 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010710 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10711 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010712 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010714 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10715 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010716 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010718 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10719 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010720 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010722 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10723 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010724 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010726 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10727 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010728 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010730 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10731 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010732 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010734 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010736 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010738 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010740 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010742 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10743 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010744 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010746 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10747 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010748 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010750 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010752 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010754 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010756 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010758 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010760 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010762 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010764 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010766 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +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("MultiMedia20", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010772 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010774 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
10776 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010778};
10779
10780static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010781 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10782 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010783 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010785 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10786 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010787 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010789 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10790 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010791 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010793 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10794 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010795 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010797 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10798 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010799 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010801 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10802 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010803 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010805 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10806 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010807 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010809 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10810 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010811 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010813 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10814 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010815 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010817 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10818 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010819 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010821 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10822 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010823 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010825 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10826 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010827 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010829 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10830 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010831 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010833 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10834 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010835 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010837 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10838 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010839 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010841 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10842 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010843 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010845 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10846 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010847 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10848 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010849 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10850 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
10851 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10852 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010853};
10854
Karthikeyan Manic3700752019-03-11 18:33:53 -070010855static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
10856 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10858 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
10860 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10862 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10863 msm_routing_put_audio_mixer),
10864 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10867 msm_routing_put_audio_mixer),
10868 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10870 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10871 msm_routing_put_audio_mixer),
10872 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10874 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10875 msm_routing_put_audio_mixer),
10876 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
10880 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10882 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
10884 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10886 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
10888 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10890 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10891 msm_routing_put_audio_mixer),
10892 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10894 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10895 msm_routing_put_audio_mixer),
10896 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10898 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
10900 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10902 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10903 msm_routing_put_audio_mixer),
10904 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10906 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10907 msm_routing_put_audio_mixer),
10908 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10910 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10911 msm_routing_put_audio_mixer),
10912 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10914 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10915 msm_routing_put_audio_mixer),
10916 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10917 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10918 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10919 msm_routing_put_audio_mixer),
10920 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10922 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
10924 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_SEN_TDM_RX_0,
10926 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10927 msm_routing_put_audio_mixer),
10928};
10929
10930static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
10931 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10933 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
10935 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10937 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
10939 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10941 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10942 msm_routing_put_audio_mixer),
10943 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10945 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10946 msm_routing_put_audio_mixer),
10947 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10949 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
10951 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10953 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10954 msm_routing_put_audio_mixer),
10955 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10957 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
10959 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10961 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10962 msm_routing_put_audio_mixer),
10963 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10965 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10966 msm_routing_put_audio_mixer),
10967 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10968 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10969 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10970 msm_routing_put_audio_mixer),
10971 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10972 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10973 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10974 msm_routing_put_audio_mixer),
10975 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10976 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10977 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10978 msm_routing_put_audio_mixer),
10979 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10981 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10982 msm_routing_put_audio_mixer),
10983 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10985 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10986 msm_routing_put_audio_mixer),
10987 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10989 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10990 msm_routing_put_audio_mixer),
10991 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_SEN_TDM_TX_0,
10993 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10994 msm_routing_put_audio_mixer),
10995};
10996
10997static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
10998 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11000 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
11002 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11004 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11005 msm_routing_put_audio_mixer),
11006 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11008 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11009 msm_routing_put_audio_mixer),
11010 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11011 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11013 msm_routing_put_audio_mixer),
11014 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11015 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11016 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11017 msm_routing_put_audio_mixer),
11018 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11019 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11020 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11021 msm_routing_put_audio_mixer),
11022 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11023 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11024 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11025 msm_routing_put_audio_mixer),
11026 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11028 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11029 msm_routing_put_audio_mixer),
11030 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11031 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11032 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11033 msm_routing_put_audio_mixer),
11034 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11035 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11036 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11037 msm_routing_put_audio_mixer),
11038 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11039 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11040 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11041 msm_routing_put_audio_mixer),
11042 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11043 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11044 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
11046 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11047 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11048 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11049 msm_routing_put_audio_mixer),
11050 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11051 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11052 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11053 msm_routing_put_audio_mixer),
11054 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11055 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11056 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11057 msm_routing_put_audio_mixer),
11058 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11059 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11060 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11061 msm_routing_put_audio_mixer),
11062 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11064 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11065 msm_routing_put_audio_mixer),
11066 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11068 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11069 msm_routing_put_audio_mixer),
11070};
11071
11072static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11073 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11075 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11076 msm_routing_put_audio_mixer),
11077 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11078 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11079 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11080 msm_routing_put_audio_mixer),
11081 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11082 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11083 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11084 msm_routing_put_audio_mixer),
11085 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11086 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11087 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11088 msm_routing_put_audio_mixer),
11089 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11090 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11091 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11092 msm_routing_put_audio_mixer),
11093 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11094 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11095 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11096 msm_routing_put_audio_mixer),
11097 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11098 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11099 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11100 msm_routing_put_audio_mixer),
11101 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11102 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11103 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11104 msm_routing_put_audio_mixer),
11105 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11106 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11107 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11108 msm_routing_put_audio_mixer),
11109 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11110 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11111 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11112 msm_routing_put_audio_mixer),
11113 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11114 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11115 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11116 msm_routing_put_audio_mixer),
11117 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11118 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11119 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11120 msm_routing_put_audio_mixer),
11121 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11122 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11123 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11124 msm_routing_put_audio_mixer),
11125 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11126 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11127 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11128 msm_routing_put_audio_mixer),
11129 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11130 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11131 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11132 msm_routing_put_audio_mixer),
11133 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11134 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11135 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11136 msm_routing_put_audio_mixer),
11137 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11138 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11139 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11140 msm_routing_put_audio_mixer),
11141 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11143 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11144 msm_routing_put_audio_mixer),
11145};
11146
11147static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
11148 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11149 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11150 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11151 msm_routing_put_audio_mixer),
11152 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11153 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11154 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11155 msm_routing_put_audio_mixer),
11156 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11157 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11158 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11159 msm_routing_put_audio_mixer),
11160 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11161 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11162 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11163 msm_routing_put_audio_mixer),
11164 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11165 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11166 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11167 msm_routing_put_audio_mixer),
11168 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11169 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11170 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11171 msm_routing_put_audio_mixer),
11172 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11174 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11175 msm_routing_put_audio_mixer),
11176 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11178 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11179 msm_routing_put_audio_mixer),
11180 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11182 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
11184 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11186 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
11188 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11190 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
11192 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11193 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11194 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11195 msm_routing_put_audio_mixer),
11196 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11198 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11199 msm_routing_put_audio_mixer),
11200 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11202 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
11204 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11206 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11207 msm_routing_put_audio_mixer),
11208 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11210 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
11212 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11214 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
11216 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11218 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11219 msm_routing_put_audio_mixer),
11220};
11221
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011222static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011223 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
11224 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011225 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011227 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11228 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011229 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011231 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11232 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011233 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011235 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11236 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011237 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011239 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11240 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011241 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011243 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11244 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011245 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011247 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011249 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011251 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11252 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011253 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011255 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11256 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011257 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11258 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011259 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11260 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11261 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011263 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011265 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011267 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11268 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011269 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011271 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11272 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011273 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011275 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11276 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011279 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011281 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011283 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11285 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011287 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011289 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011291 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011293 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011295 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011297 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011299 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011301 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011303 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011305 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011307 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011309 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011311 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011313 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011315 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011317 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11318 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011319 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11321 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011323 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011325 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011327 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011329 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011331 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011333 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011335 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011337 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011339 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011341 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011343 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011347 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011349 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011351 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011353 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011355 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011357 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011359 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011361 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011363 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011365 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011367 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011369 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011371 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011373 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011375 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011377 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011379 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011381 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011383 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011385 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011387 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011389 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011391 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011393 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011395 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011397 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011399 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011401 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011403 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11405 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
11407 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11409 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
11411 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11413 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
11415 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11417 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011419 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011421 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011423 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011425 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011427 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011429 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011431 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11433 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
11435 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11437 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
11439 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11441 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
11443 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11445 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
11447 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011451 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11453 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11457 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
11459 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11461 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11462 msm_routing_put_audio_mixer),
11463 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11464 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11465 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11466 msm_routing_put_audio_mixer),
11467 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11468 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11469 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11470 msm_routing_put_audio_mixer),
11471 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11472 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11473 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
11475 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11477 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11478 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011479 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11480 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11481 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11482 msm_routing_put_audio_mixer),
11483 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11484 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11485 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11486 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011487 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11488 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11489 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11490 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011491 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11492 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11494 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011495};
11496
11497static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011498 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011500 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011502 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011504 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011506 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011508 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011510 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011512 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011514 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011516 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011518 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011520 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011522 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011524 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011526 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011528 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011530 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11531 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011532 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011534 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11535 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011536 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011538 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011540 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011542 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011544 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011546 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11547 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11548 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011550 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11551 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011552 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011554 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011556 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011558 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11559 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011560 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011562 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011564 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011566 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011568 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011570 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011572 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011574 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11575 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011576 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011578 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011580 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011582 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011584 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011586 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11587 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011588 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011590 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011592 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011594 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11595 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011596 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011598 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011600 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011602 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11603 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011604 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011606 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11607 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011608 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011610 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011612 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011614 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11615 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011616 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011618 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11619 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011620 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011622 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11623 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011624 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011630 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11632 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
11634 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11636 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
11638 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11640 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
11642 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11644 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011652 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011654 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11656 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
11658 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11660 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
11662 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11664 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
11666 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11668 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
11670 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011674 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11676 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011678 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11680 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
11682 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11684 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
11686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11688 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
11690 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11692 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
11694 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
11698 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11700 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011702 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11704 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11708 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011710 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11712 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011714 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11716 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011718};
11719
11720static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011721 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011723 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11724 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011725 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11727 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011729 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011731 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011733 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011735 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011737 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011739 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011741 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011743 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011745 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011747 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011749 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11750 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011751 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011753 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011755 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011757 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11758 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011759 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011761 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
11762 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011763 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11764 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011765 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11767 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011769 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011771 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011773 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011775 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011777 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011779 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011781 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011783 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011785 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11786 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011787 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011789 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011791 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011793 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011795 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011797 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11798 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011799 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011801 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011803 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011805 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11806 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011807 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011809 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011811 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011813 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011815 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011817 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011819 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011821 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011823 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011825 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011827 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011829 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011831 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011833 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011835 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011837 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011839 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011841 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011843 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011845 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011847 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011849 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011851 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011853 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011855 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011857 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011859 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011861 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011863 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011865 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11867 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11868 msm_routing_put_audio_mixer),
11869 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11871 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11872 msm_routing_put_audio_mixer),
11873 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11875 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11879 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011881 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11883 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
11885 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11887 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
11889 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11890 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11891 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11892 msm_routing_put_audio_mixer),
11893 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11894 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11895 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11896 msm_routing_put_audio_mixer),
11897 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11899 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11900 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011901 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11902 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11903 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11904 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011905 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11906 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11907 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11908 msm_routing_put_audio_mixer),
11909 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11910 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11911 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11912 msm_routing_put_audio_mixer),
11913 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11914 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11915 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11916 msm_routing_put_audio_mixer),
11917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11919 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11920 msm_routing_put_audio_mixer),
11921 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11922 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11923 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11924 msm_routing_put_audio_mixer),
11925 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11926 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11927 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11928 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011929 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11930 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11931 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11932 msm_routing_put_audio_mixer),
11933 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11934 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11935 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11936 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011937 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11938 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11939 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11940 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011941};
11942
11943static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011944 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011946 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011948 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11950 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011952 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011954 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011956 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011958 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011960 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011962 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011964 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011966 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011968 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011970 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011972 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011974 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011976 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011978 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011982 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011984 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011986 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011988 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11989 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011990 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011992 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11993 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011996 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11997 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011998 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012000 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012002 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012004 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012006 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012008 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12009 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012010 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012012 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12013 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012014 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012016 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12017 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012018 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012020 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12021 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012022 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012024 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012026 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012028 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12029 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012030 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012032 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012034 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012036 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12037 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012038 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012040 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012042 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012044 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12045 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012046 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012048 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12049 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012050 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012052 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12053 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012054 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12055 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012056 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12057 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12058 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12059 msm_routing_put_audio_mixer),
12060 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12061 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12062 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12063 msm_routing_put_audio_mixer),
12064 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12066 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12067 msm_routing_put_audio_mixer),
12068 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12069 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12070 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012072 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12073 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012074 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012076 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12077 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012078 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012080 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012082 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012084 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12085 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012086 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012088 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12089 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012090 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012092 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012094 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12095 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012096 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12097 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12098 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12099 msm_routing_put_audio_mixer),
12100 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12101 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12102 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12103 msm_routing_put_audio_mixer),
12104 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12105 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12106 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12107 msm_routing_put_audio_mixer),
12108 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12110 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12111 msm_routing_put_audio_mixer),
12112 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12114 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12115 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012116 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12118 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12119 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012120 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12123 msm_routing_put_audio_mixer),
12124 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12125 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12126 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12127 msm_routing_put_audio_mixer),
12128 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12130 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12131 msm_routing_put_audio_mixer),
12132 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12134 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12135 msm_routing_put_audio_mixer),
12136 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12137 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12138 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12139 msm_routing_put_audio_mixer),
12140 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12142 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12143 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012144 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12145 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12146 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12147 msm_routing_put_audio_mixer),
12148 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12149 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12150 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12151 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012152 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12153 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12154 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12155 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012156};
12157
12158static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012159 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12160 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012161 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12162 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012163 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12164 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12165 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012167 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012169 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012171 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12172 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012173 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012175 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012177 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012179 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12180 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012181 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012183 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12184 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012185 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012187 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12188 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012189 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012191 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12192 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012193 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012195 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012197 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012199 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12200 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012201 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12202 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012203 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12204 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12205 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012207 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12208 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012209 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012211 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12212 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012213 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012215 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012217 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012219 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12220 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012221 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012223 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12224 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012225 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012227 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12228 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012229 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012231 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12232 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012233 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012235 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012237 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012239 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12240 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012241 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012243 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12244 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012245 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012247 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12248 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012249 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012251 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12252 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012253 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012255 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12256 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012257 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012259 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12260 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012261 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012263 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12264 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012265 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012267 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12268 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012269 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012271 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012273 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012275 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012277 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012279 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012281 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012283 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012287 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012289 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012291 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12292 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012295 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12296 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012297 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012299 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12300 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012301 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12302 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012303 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12304 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12305 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12306 msm_routing_put_audio_mixer),
12307 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12308 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12309 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12310 msm_routing_put_audio_mixer),
12311 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12312 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12313 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12314 msm_routing_put_audio_mixer),
12315 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12316 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12317 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012319 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12320 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012321 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012323 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12324 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012325 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012327 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12328 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012329 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012331 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12332 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012333 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012335 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12336 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012337 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12338 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012339 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12340 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12341 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12342 msm_routing_put_audio_mixer),
12343 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12344 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12345 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12346 msm_routing_put_audio_mixer),
12347 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12348 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12350 msm_routing_put_audio_mixer),
12351 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12353 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12354 msm_routing_put_audio_mixer),
12355 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12356 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12357 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12358 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012359 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12361 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12362 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012363 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12365 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12366 msm_routing_put_audio_mixer),
12367 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12368 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12369 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12370 msm_routing_put_audio_mixer),
12371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12373 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12374 msm_routing_put_audio_mixer),
12375 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12376 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12377 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12378 msm_routing_put_audio_mixer),
12379 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12380 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12381 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12382 msm_routing_put_audio_mixer),
12383 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12384 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12385 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12386 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012387 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12388 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12389 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12390 msm_routing_put_audio_mixer),
12391 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12392 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12393 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12394 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012395 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12396 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12397 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12398 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012399 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12400 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12401 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12402 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012403};
12404
12405static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012408 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012410 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12411 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012412 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12413 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012414 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12415 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12416 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012418 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12419 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012420 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012422 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012424 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012426 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012430 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12431 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012432 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012434 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12435 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012436 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012438 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12439 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012440 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012442 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12443 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012444 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12445 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012446 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12447 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12448 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012450 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12451 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012452 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012454 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12455 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012456 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012458 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12459 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012460 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012462 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012464 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012466 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012468 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012470 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012472 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012474 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012476 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012478 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012480 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012482 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12483 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012484 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012486 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12487 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012488 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012490 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12491 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012492 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012494 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012496 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012498 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12499 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012500 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012502 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12503 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012504 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012506 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12507 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012508 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012510 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12511 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012512 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012514 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012516 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012518 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12519 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012520 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012522 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012524 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012526 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12527 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012528 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012530 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12531 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012532 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012534 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12535 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012536 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012538 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12539 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012540 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012542 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12543 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012544 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12545 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012546 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12547 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12548 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12549 msm_routing_put_audio_mixer),
12550 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12551 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12552 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12553 msm_routing_put_audio_mixer),
12554 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12555 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12556 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12557 msm_routing_put_audio_mixer),
12558 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12559 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12560 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012562 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12563 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012564 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12565 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012566 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12567 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12568 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12569 msm_routing_put_audio_mixer),
12570 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12571 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12572 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12573 msm_routing_put_audio_mixer),
12574 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12575 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12576 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12577 msm_routing_put_audio_mixer),
12578 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12579 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12580 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12581 msm_routing_put_audio_mixer),
12582 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12583 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12584 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12585 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012586 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12587 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12588 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12589 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012590 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12591 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12592 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12593 msm_routing_put_audio_mixer),
12594 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12595 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12596 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12597 msm_routing_put_audio_mixer),
12598 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12599 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12600 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12601 msm_routing_put_audio_mixer),
12602 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12603 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12604 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12605 msm_routing_put_audio_mixer),
12606 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12607 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12608 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12609 msm_routing_put_audio_mixer),
12610 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12611 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12612 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12613 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012614 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12615 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12616 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12617 msm_routing_put_audio_mixer),
12618 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12619 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12620 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12621 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012622 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12623 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12624 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12625 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012626};
12627
12628static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012629 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12630 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012631 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12632 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012633 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12635 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012637 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12638 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012639 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012641 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12642 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012643 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12646 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12650 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012651 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12654 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012655 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012657 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12658 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012659 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012661 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12662 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012663 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012665 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12666 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012667 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012669 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12670 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012671 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012673 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012675 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012679 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012681 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12682 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012683 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012685 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012689 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12690 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012691 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012693 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12694 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012695 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012697 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12698 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012699 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012701 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012703 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012705 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12706 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012707 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012709 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12710 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012711 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012713 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12714 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012715 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012717 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12718 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012721 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12722 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012723 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012725 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12726 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012727 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012729 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12730 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012731 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012733 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12734 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012735 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012737 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12738 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012739 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012741 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12742 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012743 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012745 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012747 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012749 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12750 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012751 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012753 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12754 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012755 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012757 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12758 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012759 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012761 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12762 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012763 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12764 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012765 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12767 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12768 msm_routing_put_audio_mixer),
12769 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12770 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12771 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12772 msm_routing_put_audio_mixer),
12773 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12774 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12775 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12776 msm_routing_put_audio_mixer),
12777 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12778 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12779 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012781 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12782 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012783 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012785 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012787 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12788 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012789 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12791 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12792 msm_routing_put_audio_mixer),
12793 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12794 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12795 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12796 msm_routing_put_audio_mixer),
12797 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12798 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12799 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12800 msm_routing_put_audio_mixer),
12801 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12802 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12803 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12804 msm_routing_put_audio_mixer),
12805 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12806 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12807 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12808 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012809 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12810 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12811 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12812 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012813 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12815 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12816 msm_routing_put_audio_mixer),
12817 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12819 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12820 msm_routing_put_audio_mixer),
12821 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12823 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12824 msm_routing_put_audio_mixer),
12825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12827 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12828 msm_routing_put_audio_mixer),
12829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12831 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12832 msm_routing_put_audio_mixer),
12833 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12835 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12836 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012837 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12839 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12840 msm_routing_put_audio_mixer),
12841 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12843 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12844 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012845 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12847 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12848 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012849 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12851 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12852 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012853};
12854
Asish Bhattacharya34504582017-08-08 12:55:01 +053012855static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012856 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12857 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012858 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12859 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012860 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12861 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12862 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012864 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12865 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012866 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012868 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12869 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012870 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012872 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12873 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012874 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012876 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012878 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012880 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012882 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012884 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012886 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012888 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012890 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012892 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12893 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012894 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012896 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12897 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012898 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012900 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12901 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012904 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12905 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012906 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012908 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12909 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012910 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012912 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12913 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012914 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012916 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012918 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012920 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12921 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012922 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012924 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012928 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012930 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012932 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012934 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012938 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012940 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012942 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012944 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012946 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012948 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012950 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012952 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012954 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012956 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012958 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012960 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012962 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012964 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012966 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012968 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012970 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012972 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012974 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012978 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012982 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012984 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012986 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012988 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012990 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012992 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012994 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012996 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12997 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053012998 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12999 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013000 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13002 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13003 msm_routing_put_audio_mixer),
13004 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13006 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13007 msm_routing_put_audio_mixer),
13008 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13009 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13010 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13011 msm_routing_put_audio_mixer),
13012 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13014 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13015 msm_routing_put_audio_mixer),
13016 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13017 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13018 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13019 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013020 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13021 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13022 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13023 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013024 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13026 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13027 msm_routing_get_audio_mixer,
13028 msm_routing_put_audio_mixer),
13029 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13030 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13031 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13032 msm_routing_get_audio_mixer,
13033 msm_routing_put_audio_mixer),
13034 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13036 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13037 msm_routing_get_audio_mixer,
13038 msm_routing_put_audio_mixer),
13039 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13041 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13042 msm_routing_get_audio_mixer,
13043 msm_routing_put_audio_mixer),
13044 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13045 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13046 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13047 msm_routing_get_audio_mixer,
13048 msm_routing_put_audio_mixer),
13049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13051 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13052 msm_routing_get_audio_mixer,
13053 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013054 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13056 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13057 msm_routing_put_audio_mixer),
13058 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13059 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13060 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13061 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013062 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13063 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13064 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13065 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013066 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13068 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13069 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013070};
13071
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013073 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13074 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13076 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013077 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13079 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013081 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13082 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013083 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013085 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013087 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013089 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013091 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013093 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13094 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013095 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013097 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13098 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013099 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013101 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13102 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013103 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013105 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13106 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013107 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013109 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13110 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013111 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013113 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13114 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013115 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013117 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13118 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013119 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013121 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13122 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013123 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013125 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13126 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013127 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13130 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013131 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013133 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13134 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013135 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013137 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13138 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013139 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13142 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013143 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013145 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13146 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013147 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013149 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13150 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013151 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013153 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013155 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13156 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013157 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13159 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13160 msm_routing_put_audio_mixer),
13161 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13162 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13163 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13164 msm_routing_put_audio_mixer),
13165 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13167 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13168 msm_routing_put_audio_mixer),
13169 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13171 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13172 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013173 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13175 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13176 msm_routing_put_audio_mixer),
13177 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13179 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13180 msm_routing_put_audio_mixer),
13181 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13183 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13184 msm_routing_put_audio_mixer),
13185 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13187 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13188 msm_routing_put_audio_mixer),
13189 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13191 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13192 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013193 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13195 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13196 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013197 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13199 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13200 msm_routing_put_audio_mixer),
13201 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13202 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13203 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13204 msm_routing_put_audio_mixer),
13205 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13207 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13208 msm_routing_put_audio_mixer),
13209 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13211 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13212 msm_routing_put_audio_mixer),
13213 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13215 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13216 msm_routing_put_audio_mixer),
13217 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13219 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13220 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013221 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13223 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13224 msm_routing_put_audio_mixer),
13225 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13227 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13228 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013229 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13231 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13232 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013233};
13234
Laxminath Kasam38070be2017-08-17 18:21:59 +053013235static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013236 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013238 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13239 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013240 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13242 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013244 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13245 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013246 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013248 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013250 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013252 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13253 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013254 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013256 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013258 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013260 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013262 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13265 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013266 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013268 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013270 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013272 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070013274 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013278 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013282 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013286 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013288 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013290 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013292 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013294 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013296 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013298 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013302 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013304 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13305 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013306 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013308 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13309 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013310 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013312 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13313 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013314 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013316 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13317 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013318 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013320 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013322 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013324 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013326 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013328 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013330 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013332 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13333 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013334 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013336 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013338 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013340 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13341 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013342 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13343 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013344 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13345 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13346 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13347 msm_routing_put_audio_mixer),
13348 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13350 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13351 msm_routing_put_audio_mixer),
13352 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13353 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13354 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13355 msm_routing_put_audio_mixer),
13356 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13357 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13358 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13359 msm_routing_put_audio_mixer),
13360 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13361 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13362 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13363 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013364 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13366 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13367 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013368 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13370 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13371 msm_routing_get_audio_mixer,
13372 msm_routing_put_audio_mixer),
13373 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13375 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13376 msm_routing_get_audio_mixer,
13377 msm_routing_put_audio_mixer),
13378 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13380 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13381 msm_routing_get_audio_mixer,
13382 msm_routing_put_audio_mixer),
13383 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13385 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13386 msm_routing_get_audio_mixer,
13387 msm_routing_put_audio_mixer),
13388 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13390 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13391 msm_routing_get_audio_mixer,
13392 msm_routing_put_audio_mixer),
13393 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13395 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13396 msm_routing_get_audio_mixer,
13397 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013398 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13400 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13401 msm_routing_put_audio_mixer),
13402 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13404 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13405 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013406 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13408 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13409 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013410 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13412 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13413 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053013414};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013415static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013418 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13419 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013420 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13422 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013424 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13425 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013426 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013430 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013432 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013434 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013438 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013440 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13441 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013442 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013444 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013446 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013448 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013450 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13451 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013452 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13454 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13455 msm_routing_put_audio_mixer),
13456 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
13458 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13459 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013460 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13462 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13463 msm_routing_put_audio_mixer),
13464 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13466 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13467 msm_routing_put_audio_mixer),
13468 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13470 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13471 msm_routing_put_audio_mixer),
13472 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13474 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13475 msm_routing_put_audio_mixer),
13476 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13478 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13479 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013480 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13482 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13483 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013484 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13486 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13487 msm_routing_get_audio_mixer,
13488 msm_routing_put_audio_mixer),
13489 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13491 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13492 msm_routing_get_audio_mixer,
13493 msm_routing_put_audio_mixer),
13494 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13496 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13497 msm_routing_get_audio_mixer,
13498 msm_routing_put_audio_mixer),
13499 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13501 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13502 msm_routing_get_audio_mixer,
13503 msm_routing_put_audio_mixer),
13504 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13506 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13507 msm_routing_get_audio_mixer,
13508 msm_routing_put_audio_mixer),
13509 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13510 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13511 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13512 msm_routing_get_audio_mixer,
13513 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013514 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13515 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13516 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13517 msm_routing_put_audio_mixer),
13518 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13519 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13520 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13521 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013522 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13523 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13524 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13525 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013526};
13527
13528static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13532 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013533 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13535 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013537 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013539 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013541 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013543 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13544 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013545 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
13547 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13548 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013549 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13551 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013553 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013555 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013557 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013559 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013561 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013563 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013565 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013567 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013569 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013571 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013573 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013575 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13576 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013577 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13579 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13580 msm_routing_put_audio_mixer),
13581 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13583 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13584 msm_routing_put_audio_mixer),
13585 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13587 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13588 msm_routing_put_audio_mixer),
13589 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13591 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13592 msm_routing_put_audio_mixer),
13593 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13595 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13596 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013597 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13599 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13600 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013601 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13602 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13603 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13604 msm_routing_get_audio_mixer,
13605 msm_routing_put_audio_mixer),
13606 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13607 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13608 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13609 msm_routing_get_audio_mixer,
13610 msm_routing_put_audio_mixer),
13611 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13613 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13614 msm_routing_get_audio_mixer,
13615 msm_routing_put_audio_mixer),
13616 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13617 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13618 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13619 msm_routing_get_audio_mixer,
13620 msm_routing_put_audio_mixer),
13621 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13623 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13624 msm_routing_get_audio_mixer,
13625 msm_routing_put_audio_mixer),
13626 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13627 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13628 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13629 msm_routing_get_audio_mixer,
13630 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013631 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13633 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13634 msm_routing_put_audio_mixer),
13635 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13636 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13637 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13638 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013639 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13641 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13642 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643};
13644
13645static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013646 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13647 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013648 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13649 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013650 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13652 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013654 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013656 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013658 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13659 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013660 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013664 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13667 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013668 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013670 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013672 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013674 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013678 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13679 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013680 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13681 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010013682 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
13684 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13685 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013686 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13688 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13689 msm_routing_put_audio_mixer),
13690 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
13692 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13693 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013694 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13696 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13697 msm_routing_put_audio_mixer),
13698 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13700 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13701 msm_routing_put_audio_mixer),
13702 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13704 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13705 msm_routing_put_audio_mixer),
13706 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13708 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13709 msm_routing_put_audio_mixer),
13710 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13712 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13713 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013714 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13716 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13717 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013718 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13720 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
13721 msm_routing_get_audio_mixer,
13722 msm_routing_put_audio_mixer),
13723 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13725 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
13726 msm_routing_get_audio_mixer,
13727 msm_routing_put_audio_mixer),
13728 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13729 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13730 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
13731 msm_routing_get_audio_mixer,
13732 msm_routing_put_audio_mixer),
13733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13735 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
13736 msm_routing_get_audio_mixer,
13737 msm_routing_put_audio_mixer),
13738 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13740 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
13741 msm_routing_get_audio_mixer,
13742 msm_routing_put_audio_mixer),
13743 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13745 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
13746 msm_routing_get_audio_mixer,
13747 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013748 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13749 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13750 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13751 msm_routing_put_audio_mixer),
13752 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13753 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13754 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13755 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013756 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13758 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
13759 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013760};
13761
13762static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013763 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013765 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013767 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013769 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013773 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013775 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013777 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013779 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13780 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013781 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13782 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013783 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13784 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13785 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013787 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13788 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013789 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013791 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013793 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013795 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013797 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013799 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013801 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013803 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013805 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013807 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013809 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013811 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013813 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013815 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13816 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013817 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013819 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013821 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013823 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013825 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013827 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13828 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013829 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013831 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13832 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013833 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013835 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13836 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013837 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013839 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13840 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013843 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013845 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013847 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13848 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013849 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013851 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13852 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013853 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013855 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13856 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013857 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013859 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013861 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013863 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13864 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013865 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13866 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013867 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13869 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13870 msm_routing_put_audio_mixer),
13871 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13872 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13873 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13874 msm_routing_put_audio_mixer),
13875 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13876 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13877 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13878 msm_routing_put_audio_mixer),
13879 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13881 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13882 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013883 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13885 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13886 msm_routing_put_audio_mixer),
13887 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13888 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13889 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13890 msm_routing_put_audio_mixer),
13891 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13893 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13894 msm_routing_put_audio_mixer),
13895 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13897 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13898 msm_routing_put_audio_mixer),
13899 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13901 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13902 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013903 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13905 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13906 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053013907 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13909 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13910 msm_routing_put_audio_mixer),
13911 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13913 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13914 msm_routing_put_audio_mixer),
13915 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13916 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13917 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13918 msm_routing_put_audio_mixer),
13919 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13921 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13922 msm_routing_put_audio_mixer),
13923 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13925 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13926 msm_routing_put_audio_mixer),
13927 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13929 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13930 msm_routing_put_audio_mixer),
13931 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13933 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13934 msm_routing_put_audio_mixer),
13935 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13937 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13938 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013939 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13941 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
13942 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070013943};
13944
13945static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
13946 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13947 MSM_BACKEND_DAI_AUXPCM_TX,
13948 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13949 msm_routing_put_audio_mixer),
13950 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13951 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
13952 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13953 msm_routing_put_audio_mixer),
13954 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13955 MSM_BACKEND_DAI_PRI_TDM_TX_0,
13956 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13957 msm_routing_put_audio_mixer),
13958 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_PRI_TDM_TX_1,
13960 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13961 msm_routing_put_audio_mixer),
13962 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_PRI_TDM_TX_2,
13964 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13965 msm_routing_put_audio_mixer),
13966 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13967 MSM_BACKEND_DAI_PRI_TDM_TX_3,
13968 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13969 msm_routing_put_audio_mixer),
13970 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_SEC_TDM_TX_0,
13972 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13973 msm_routing_put_audio_mixer),
13974 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13975 MSM_BACKEND_DAI_SEC_TDM_TX_1,
13976 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13977 msm_routing_put_audio_mixer),
13978 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13979 MSM_BACKEND_DAI_SEC_TDM_TX_2,
13980 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13981 msm_routing_put_audio_mixer),
13982 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_SEC_TDM_TX_3,
13984 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13985 msm_routing_put_audio_mixer),
13986 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13987 MSM_BACKEND_DAI_TERT_TDM_TX_0,
13988 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13989 msm_routing_put_audio_mixer),
13990 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13991 MSM_BACKEND_DAI_TERT_TDM_TX_1,
13992 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13993 msm_routing_put_audio_mixer),
13994 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13995 MSM_BACKEND_DAI_TERT_TDM_TX_2,
13996 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
13997 msm_routing_put_audio_mixer),
13998 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13999 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14000 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14001 msm_routing_put_audio_mixer),
14002 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14003 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14004 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14005 msm_routing_put_audio_mixer),
14006 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14007 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14008 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14009 msm_routing_put_audio_mixer),
14010 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14011 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14012 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14013 msm_routing_put_audio_mixer),
14014 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14015 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14016 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14017 msm_routing_put_audio_mixer),
14018 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14019 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14020 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14021 msm_routing_put_audio_mixer),
14022 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14023 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14024 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14025 msm_routing_put_audio_mixer),
14026 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14027 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14028 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14029 msm_routing_put_audio_mixer),
14030 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14031 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14032 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14033 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014034 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14035 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14036 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14037 msm_routing_put_audio_mixer),
14038 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14039 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14040 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14041 msm_routing_put_audio_mixer),
14042 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14043 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14044 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14045 msm_routing_put_audio_mixer),
14046 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14047 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14048 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14049 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014050 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014051 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14052 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014053 msm_routing_put_audio_mixer),
14054 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014055 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14056 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014057 msm_routing_put_audio_mixer),
14058 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014059 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14060 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014061 msm_routing_put_audio_mixer),
14062 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014063 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14064 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014065 msm_routing_put_audio_mixer),
14066 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014067 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14068 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014069 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014070 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14072 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14073 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014074 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014075 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14076 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14077 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014078 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014079 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14080 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14081 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014082 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014083 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14084 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14085 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014086 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014087 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14088 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14089 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014090 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014091 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14092 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14093 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014094 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014095 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14096 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14097 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014098 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014100 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014101 msm_routing_put_audio_mixer),
14102 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014104 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014105 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014106 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14107 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14108 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14109 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014110};
14111
Surendar Karkac1cde372018-08-14 18:56:24 +053014112static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
14113 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14114 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14115 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14116 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014117 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14119 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14120 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014121 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14122 MSM_BACKEND_DAI_SLIMBUS_6_TX,
14123 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14124 msm_routing_put_audio_mixer),
14125 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_SLIMBUS_7_TX,
14127 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14128 msm_routing_put_audio_mixer),
14129 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14130 MSM_BACKEND_DAI_PRI_MI2S_TX,
14131 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14132 msm_routing_put_audio_mixer),
14133 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14134 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14135 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14136 msm_routing_put_audio_mixer),
14137 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14138 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14139 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14140 msm_routing_put_audio_mixer),
14141 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14142 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14143 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14144 msm_routing_put_audio_mixer),
14145 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14146 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
14147 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14148 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014149 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14150 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14151 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14152 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014153 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14155 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14156 msm_routing_put_audio_mixer),
14157 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14159 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14160 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014161 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14163 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14164 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014165 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14167 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14168 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014169};
14170
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014171static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014172 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14173 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014174 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14175 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014176 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14177 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14178 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014180 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14181 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014182 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014184 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14185 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014186 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014188 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14189 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014190 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014192 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14193 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014194 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014196 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014198 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014200 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014202 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014204 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14205 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014206 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14207 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014208 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14209 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14210 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14211 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014212 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14213 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14214 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14215 msm_routing_put_audio_mixer),
14216 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14217 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14218 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14219 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014220 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14221 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14222 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14223 msm_routing_put_audio_mixer),
14224 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14225 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14226 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14227 msm_routing_put_audio_mixer),
14228 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14229 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14230 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14231 msm_routing_put_audio_mixer),
14232 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14233 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14234 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14235 msm_routing_put_audio_mixer),
14236 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14237 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14238 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14239 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014240 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14241 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14242 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14243 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014244 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14245 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14246 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14247 msm_routing_get_audio_mixer,
14248 msm_routing_put_audio_mixer),
14249 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14250 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14251 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14252 msm_routing_get_audio_mixer,
14253 msm_routing_put_audio_mixer),
14254 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14256 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14257 msm_routing_get_audio_mixer,
14258 msm_routing_put_audio_mixer),
14259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14261 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14262 msm_routing_get_audio_mixer,
14263 msm_routing_put_audio_mixer),
14264 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14265 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14266 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14267 msm_routing_get_audio_mixer,
14268 msm_routing_put_audio_mixer),
14269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14271 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14272 msm_routing_get_audio_mixer,
14273 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014274 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14276 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14277 msm_routing_put_audio_mixer),
14278 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14280 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14281 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014282 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14283 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14284 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14285 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014286};
14287
14288static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014289 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014291 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14292 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014293 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14294 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14295 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014297 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14298 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014299 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014301 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14302 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014303 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014305 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14306 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014307 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014311 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014313 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014315 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014317 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014319 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014321 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014323 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14324 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014325 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14327 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14328 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014329 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14331 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14332 msm_routing_put_audio_mixer),
14333 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14334 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14335 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14336 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014337 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14338 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14339 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14340 msm_routing_put_audio_mixer),
14341 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14342 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14343 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14344 msm_routing_put_audio_mixer),
14345 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14346 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14347 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14348 msm_routing_put_audio_mixer),
14349 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14350 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14351 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14352 msm_routing_put_audio_mixer),
14353 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14354 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14355 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14356 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014357 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14358 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14359 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14360 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014361 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14363 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14364 msm_routing_get_audio_mixer,
14365 msm_routing_put_audio_mixer),
14366 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14367 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14368 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14369 msm_routing_get_audio_mixer,
14370 msm_routing_put_audio_mixer),
14371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14373 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14374 msm_routing_get_audio_mixer,
14375 msm_routing_put_audio_mixer),
14376 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14377 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14378 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14379 msm_routing_get_audio_mixer,
14380 msm_routing_put_audio_mixer),
14381 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14382 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14383 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14384 msm_routing_get_audio_mixer,
14385 msm_routing_put_audio_mixer),
14386 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14387 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14388 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14389 msm_routing_get_audio_mixer,
14390 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014391 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14392 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14393 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14394 msm_routing_put_audio_mixer),
14395 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14396 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14397 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14398 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014399 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14400 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14401 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14402 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014403};
14404
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014405static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014406 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14407 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014408 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14409 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014410 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14411 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014412 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14413 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014414 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14415 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014416 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14417 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014418 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14419 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014420 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14421 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014422 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014424 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14425 msm_routing_put_voice_mixer),
14426};
14427
14428static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014429 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014431 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14432 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014433 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014435 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14436 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014437 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14438 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014439 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14440 msm_routing_put_voice_mixer),
14441};
14442
14443static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014444 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14445 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014446 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14447 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014448 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14449 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
14450 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
14451 msm_routing_put_voice_mixer),
14452 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
14454 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
14455 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014456 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14457 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014458 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14459 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014460 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014462 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14463 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014464 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014466 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14467 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014468 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14469 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014470 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14471 msm_routing_put_voice_mixer),
14472};
14473
14474static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014475 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014477 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14478 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014479 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014481 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14482 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014483 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014485 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14486 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014487 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014489 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14490 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014491 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014493 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14494 msm_routing_put_voice_mixer),
14495};
14496
14497static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014498 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14499MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014500 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14501 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014502 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14503MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014504 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14505 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014506 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14507MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014508 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14509 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014510 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14511MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014512 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14513 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014514 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14515MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014516 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14517 msm_routing_put_voice_mixer),
14518};
14519
14520static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014521 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14522 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014523 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14524 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014525 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14526 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014527 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14528 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014529 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14530 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014531 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14532 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014533 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14534 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014535 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14536 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014537 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14538 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014539 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14540 msm_routing_put_voice_mixer),
14541};
14542
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014543static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014544 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14545MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014546 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14547 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014548 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14549MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014550 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14551 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014552 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14553MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014554 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14555 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014556 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14557MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014558 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14559 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14561MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080014562 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14563 msm_routing_put_voice_mixer),
14564};
14565
Karthikeyan Mani57550082018-05-03 18:43:58 -070014566static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
14567 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14568 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14569 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14570 msm_routing_put_voice_mixer),
14571 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14572 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14573 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14574 msm_routing_put_voice_mixer),
14575 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14576 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14577 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14578 msm_routing_put_voice_mixer),
14579 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14580 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14581 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14582 msm_routing_put_voice_mixer),
14583 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14584 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14585 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14586 msm_routing_put_voice_mixer),
14587};
14588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014589static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014590 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014592 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14593 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014594 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014596 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14597 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014600 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14601 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014602 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14603 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014604 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14605 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014606 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14607 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014608 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14609 msm_routing_put_voice_mixer),
14610};
14611
14612static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014613 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14614 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014615 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14616 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014617 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14618 MSM_BACKEND_DAI_MI2S_RX,
14619 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
14620 msm_routing_put_voice_mixer),
14621 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14622 MSM_BACKEND_DAI_MI2S_RX,
14623 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
14624 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014625 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14626 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014627 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014629 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14630 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014631 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14632 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014635 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14636 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014637 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14638 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014639 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14640 msm_routing_put_voice_mixer),
14641};
14642
14643static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014644 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070014645 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014646 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14647 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014648 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14649 MSM_BACKEND_DAI_PRI_MI2S_RX,
14650 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
14651 msm_routing_put_voice_mixer),
14652 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14653 MSM_BACKEND_DAI_PRI_MI2S_RX,
14654 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
14655 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014656 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070014657 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014658 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14659 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014660 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070014661 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014662 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14663 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014664 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070014665 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014666 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14667 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014668 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070014669 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014670 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14671 msm_routing_put_voice_mixer),
14672};
14673
14674static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014675 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14676MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014677 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14678 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014679 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14680MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014681 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14682 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014683 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14684MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014685 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14686 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014687 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14688MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014689 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14690 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014691 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14692MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014693 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14694 msm_routing_put_voice_mixer),
14695};
14696
14697static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014698 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14699 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014700 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14701 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014702 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14703 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014704 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14705 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014706 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014708 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14709 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014710 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14711 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014712 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14713 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014714 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14715 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014716 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14717 msm_routing_put_voice_mixer),
14718};
14719
14720static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14724 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014725 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14726 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
14727 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
14728 msm_routing_put_voice_mixer),
14729 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
14731 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
14732 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014733 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014735 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14736 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014737 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014739 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14740 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14744 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014745 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14746 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014747 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14748 msm_routing_put_voice_mixer),
14749};
14750
14751static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014752 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14753 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014754 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14755 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014756 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
14758 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
14759 msm_routing_put_voice_mixer),
14760 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14761 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
14762 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
14763 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014764 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14765 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014766 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14767 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014768 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14769 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014770 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14771 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014772 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14773 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014774 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14775 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014776 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014778 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14779 msm_routing_put_voice_mixer),
14780};
14781
14782static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014783 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14784 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014785 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14786 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014787 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14788 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
14789 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14790 msm_routing_put_voice_stub_mixer),
14791 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
14793 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14794 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014795 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14796 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014797 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14798 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014799 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14800 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014801 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14802 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014803 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14804 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014805 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14806 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014807 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14808 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014809 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14810 msm_routing_put_voice_mixer),
14811};
14812
Karthikeyan Manic3700752019-03-11 18:33:53 -070014813static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
14814 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14815 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14816 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14817 msm_routing_put_voice_mixer),
14818 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14819 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14820 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14821 msm_routing_put_voice_mixer),
14822 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14823 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14824 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14825 msm_routing_put_voice_mixer),
14826 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14827 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14828 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14829 msm_routing_put_voice_mixer),
14830 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14831 MSM_BACKEND_DAI_SENARY_MI2S_RX,
14832 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14833 msm_routing_put_voice_mixer),
14834};
14835
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014837 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014839 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14840 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014841 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014843 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14844 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014845 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014847 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14848 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14852 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014853 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014855 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14856 msm_routing_put_voice_mixer),
14857};
14858
14859static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014860 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14861 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014862 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14863 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014866 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14867 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014868 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14869 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014870 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14871 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014872 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14873 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014874 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14875 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014876 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014878 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14879 msm_routing_put_voice_mixer),
14880};
14881
14882static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014883 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14884MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014885 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14886 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014887 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14888MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014889 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14890 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014891 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14892MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014893 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14894 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014895 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14896MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014897 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14898 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014899 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14900MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014901 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14902 msm_routing_put_voice_mixer),
14903};
14904
14905static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014906 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14907MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014908 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14909 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014910 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14911MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014912 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14913 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014914 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14915MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014916 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14917 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014918 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14919MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014920 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14921 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14923MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14925 msm_routing_put_voice_mixer),
14926};
14927
14928static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014929 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14930MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014931 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14932 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014933 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14934MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014935 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14936 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14938MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014939 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14940 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014941 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14942MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014943 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14944 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014945 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14946MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014947 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14948 msm_routing_put_voice_mixer),
14949};
14950
Rohit Kumara5077932017-09-10 22:05:05 +053014951static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14953MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014954 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14955 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014956 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14957MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014958 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14959 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014960 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14961MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014962 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14963 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014964 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14965MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014966 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14967 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014968 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14969MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014970 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14971 msm_routing_put_voice_mixer),
14972};
14973
Karthikeyan Manic3700752019-03-11 18:33:53 -070014974static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
14975 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14976 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14977 msm_routing_put_voice_mixer),
14978 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14979 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14980 msm_routing_put_voice_mixer),
14981 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14982 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14983 msm_routing_put_voice_mixer),
14984 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14986 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14987 msm_routing_put_voice_mixer),
14988 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14989 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
14990 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14991 msm_routing_put_voice_mixer),
14992};
14993
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014994static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014995 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14996 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014997 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14998 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014999 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15000 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015001 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15002 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015003 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15004 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015005 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15006 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015007 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015009 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15010 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015011 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15012 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015013 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15014 msm_routing_put_voice_mixer),
15015};
15016
15017static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015018 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15019MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015020 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15021 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015022 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15023MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015024 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15025 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015026 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15027MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015028 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15029 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015030 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15031MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15033 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015034 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15035MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015036 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15037 msm_routing_put_voice_mixer),
15038};
15039
15040static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015041 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15042 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015043 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15044 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015045 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15048 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015049 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15050 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015051 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15052 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015053 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15054 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015055 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15056 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015057 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15058 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015059 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15060 msm_routing_put_voice_mixer),
15061};
15062
15063static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015064 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15065 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015066 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15067 msm_routing_put_voice_mixer),
15068};
15069
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015070static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
15071 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15073 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15074 msm_routing_put_voice_mixer),
15075 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15077 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15078 msm_routing_put_voice_mixer),
15079 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15080 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15081 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15082 msm_routing_put_voice_mixer),
15083 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15085 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15086 msm_routing_put_voice_mixer),
15087 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15089 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15090 msm_routing_put_voice_mixer),
15091};
15092
15093static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
15094 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15095 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15096 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15097 msm_routing_put_voice_mixer),
15098 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15099 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15100 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15101 msm_routing_put_voice_mixer),
15102 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15103 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15104 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15105 msm_routing_put_voice_mixer),
15106 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15107 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15108 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15109 msm_routing_put_voice_mixer),
15110 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15112 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15113 msm_routing_put_voice_mixer),
15114};
15115
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015116static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
15117 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15118 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15119 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15120 msm_routing_put_voice_mixer),
15121 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15122 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15123 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15124 msm_routing_put_voice_mixer),
15125 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15126 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15127 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15128 msm_routing_put_voice_mixer),
15129 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15130 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15131 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15132 msm_routing_put_voice_mixer),
15133 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15135 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15136 msm_routing_put_voice_mixer),
15137};
15138
15139static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
15140 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15141 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15142 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15143 msm_routing_put_voice_mixer),
15144 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15146 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15147 msm_routing_put_voice_mixer),
15148 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15150 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15151 msm_routing_put_voice_mixer),
15152 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15153 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15154 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15155 msm_routing_put_voice_mixer),
15156 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15157 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15158 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15159 msm_routing_put_voice_mixer),
15160};
15161
15162static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
15163 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15164 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15165 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15166 msm_routing_put_voice_mixer),
15167 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15168 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15169 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15170 msm_routing_put_voice_mixer),
15171 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15173 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15174 msm_routing_put_voice_mixer),
15175 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15176 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15177 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15178 msm_routing_put_voice_mixer),
15179 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15181 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15182 msm_routing_put_voice_mixer),
15183};
15184
15185static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
15186 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15188 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15189 msm_routing_put_voice_mixer),
15190 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15192 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15193 msm_routing_put_voice_mixer),
15194 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15196 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15197 msm_routing_put_voice_mixer),
15198 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15200 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15201 msm_routing_put_voice_mixer),
15202 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15204 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15205 msm_routing_put_voice_mixer),
15206};
15207
15208static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
15209 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15211 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15212 msm_routing_put_voice_mixer),
15213 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15215 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15216 msm_routing_put_voice_mixer),
15217 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15219 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15220 msm_routing_put_voice_mixer),
15221 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15223 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15224 msm_routing_put_voice_mixer),
15225 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15227 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15228 msm_routing_put_voice_mixer),
15229};
15230
15231static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
15232 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15233 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15234 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15235 msm_routing_put_voice_mixer),
15236 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15238 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15239 msm_routing_put_voice_mixer),
15240 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15241 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15242 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15243 msm_routing_put_voice_mixer),
15244 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15245 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15246 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15247 msm_routing_put_voice_mixer),
15248 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15249 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15250 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15251 msm_routing_put_voice_mixer),
15252};
15253
15254static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
15255 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15256 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15257 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15258 msm_routing_put_voice_mixer),
15259 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15260 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15261 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15262 msm_routing_put_voice_mixer),
15263 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15264 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15265 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15266 msm_routing_put_voice_mixer),
15267 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15268 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15269 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15270 msm_routing_put_voice_mixer),
15271 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15273 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15274 msm_routing_put_voice_mixer),
15275};
15276
15277static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
15278 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15279 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15280 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15281 msm_routing_put_voice_mixer),
15282 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15283 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15284 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15285 msm_routing_put_voice_mixer),
15286 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15287 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15288 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15289 msm_routing_put_voice_mixer),
15290 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15291 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15292 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15293 msm_routing_put_voice_mixer),
15294 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15295 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15296 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15297 msm_routing_put_voice_mixer),
15298};
15299
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053015300static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
15301 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15303 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15304 msm_routing_put_voice_mixer),
15305 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15306 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15307 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15308 msm_routing_put_voice_stub_mixer),
15309 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15310 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15311 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15312 msm_routing_put_voice_stub_mixer),
15313 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15314 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15315 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15316 msm_routing_put_voice_mixer),
15317 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15318 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15319 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15320 msm_routing_put_voice_mixer),
15321 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15322 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15323 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15324 msm_routing_put_voice_mixer),
15325 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15326 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15327 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15328 msm_routing_put_voice_mixer),
15329 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15330 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15331 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15332 msm_routing_put_voice_mixer),
15333};
15334
15335static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
15336 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15337 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15338 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15339 msm_routing_put_voice_mixer),
15340 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15342 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15343 msm_routing_put_voice_stub_mixer),
15344 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15346 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15347 msm_routing_put_voice_stub_mixer),
15348 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15350 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15351 msm_routing_put_voice_mixer),
15352 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15354 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15355 msm_routing_put_voice_mixer),
15356 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15357 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15358 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15359 msm_routing_put_voice_mixer),
15360 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15361 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15362 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15363 msm_routing_put_voice_mixer),
15364 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15366 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15367 msm_routing_put_voice_mixer),
15368};
15369
15370static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
15371 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15372 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15373 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15374 msm_routing_put_voice_mixer),
15375 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15376 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15377 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15378 msm_routing_put_voice_stub_mixer),
15379 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15381 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15382 msm_routing_put_voice_stub_mixer),
15383 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15384 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15385 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15386 msm_routing_put_voice_mixer),
15387 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15388 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15389 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15390 msm_routing_put_voice_mixer),
15391 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15392 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15393 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15394 msm_routing_put_voice_mixer),
15395 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15396 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15397 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15398 msm_routing_put_voice_mixer),
15399 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15400 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15401 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15402 msm_routing_put_voice_mixer),
15403};
15404
15405static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
15406 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15407 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15408 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15409 msm_routing_put_voice_mixer),
15410 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15411 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15412 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15413 msm_routing_put_voice_stub_mixer),
15414 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15416 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15417 msm_routing_put_voice_stub_mixer),
15418 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15419 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15420 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15421 msm_routing_put_voice_mixer),
15422 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15423 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15424 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15425 msm_routing_put_voice_mixer),
15426 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15427 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15428 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15429 msm_routing_put_voice_mixer),
15430 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15431 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15432 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15433 msm_routing_put_voice_mixer),
15434 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15435 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15436 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15437 msm_routing_put_voice_mixer),
15438};
15439
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015440static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015441 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15442 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015443 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15444 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015445 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15446 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015447 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15448 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015449};
15450
15451static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015452 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15453 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015454 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15455 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015456 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15457 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015458 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15459 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015460};
15461
15462static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015465 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15466 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015467 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15468 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015469 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15470 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015471};
15472
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015473static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015474 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
15475 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015476 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15477 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015478 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015480 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15481 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015482 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015483 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15484 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015485 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015486 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15487 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015488 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015489 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
15490 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015491 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015492 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
15493 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015494 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015495 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15496 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015497 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015498 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15499 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015500 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015501 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15502 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015503 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053015504 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15505 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015506 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
15507 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15508 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015509 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015510 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
15511 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015512 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015513 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
15514 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015515 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015516 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
15517 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015518 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015519 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15520 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015521 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015522 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
15523 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015524 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
15525 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015526 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15527 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
15529MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015530 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015531 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
15532 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
15533 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15534 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
15536 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015537 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
15538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
15539 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015540 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
15541 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
15542 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15543 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
15544 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
15545 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
15547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
15548 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
15550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
15551 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15552 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
15553 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
15554 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15555 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
15556 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
15557 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053015558 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
15560 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15561 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
15562 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
15563 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070015564 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053015565 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
15566 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015567};
15568
15569static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015570 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
15571 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015572 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15573 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015574 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
15575 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015576 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15577 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015578 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015579 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15580 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015581 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015582 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15583 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015584 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
15586 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015587 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015588 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
15589 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015590 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015591 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15592 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015594 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15595 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015596 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015597 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15598 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015599 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053015600 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15601 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015602 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
15603 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15604 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015605 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015606 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
15607 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015608 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015609 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
15610 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015612 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
15613 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015614 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015615 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15616 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015617 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015618 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15619 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015620 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015621 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
15622 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015623 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
15625 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15626 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
15628 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015629 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
15630 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
15631 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015632 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
15633 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
15634 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15635 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
15636 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
15637 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15638 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
15639 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
15640 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
15643 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
15645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
15646 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
15648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
15649 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053015650 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
15651 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
15652 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15653 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
15654 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
15655 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070015656 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053015658 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015659};
15660
15661static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015662 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
15663 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015664 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15665 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015668 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15669 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015670 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
15671 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015672 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15673 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015674 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
15675 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015676 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15677 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015678 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
15679 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015680 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15681 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
15683 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015684 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15685 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15689 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015690 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
15691 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015692 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15693 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
15695 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015696 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15697 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015698 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
15699 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053015700 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15701 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015702 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
15703 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
15704 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15705 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015708 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15709 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015710 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
15711 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015712 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15713 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015714 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
15715 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015716 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15717 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015718 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
15719 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015720 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15721 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015722 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
15723 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015724 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15725 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015728 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15729 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015730 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
15732 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15733 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
15734 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
15735 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015736 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
15737 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
15738 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015739 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
15741 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15742 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
15743 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
15744 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
15746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
15747 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15748 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
15749 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
15750 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
15752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
15753 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
15754 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
15756 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053015757 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
15758 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15759 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015760};
15761
15762static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015763 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
15764 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015765 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15766 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015767 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15768 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015769 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15770 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015771 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15772 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015773 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15774 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015775 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015777 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15778 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15782 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015783 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15784 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015785 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15786 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15790 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15792 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015793 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15794 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015797 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15798 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15802 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015803 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15804 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015805 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15806 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015807 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
15808 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015809 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15810 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015811 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
15812 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015813 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15814 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015815 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
15816 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053015817 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15818 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015819 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
15820 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
15821 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15822 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015823 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15824 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015825 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15826 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015827 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
15828 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015829 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15830 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015831 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15832 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015833 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15834 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015835 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15836 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015837 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15838 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015839 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15840 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015841 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15842 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015843 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15844 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
15845 1, 0, msm_routing_get_voice_stub_mixer,
15846 msm_routing_put_voice_stub_mixer),
15847 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
15849 1, 0, msm_routing_get_voice_stub_mixer,
15850 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015851 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15852 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
15853 1, 0, msm_routing_get_voice_stub_mixer,
15854 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015855 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
15857 1, 0, msm_routing_get_voice_stub_mixer,
15858 msm_routing_put_voice_stub_mixer),
15859 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15860 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
15861 1, 0, msm_routing_get_voice_stub_mixer,
15862 msm_routing_put_voice_stub_mixer),
15863 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
15865 1, 0, msm_routing_get_voice_stub_mixer,
15866 msm_routing_put_voice_stub_mixer),
15867 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
15869 1, 0, msm_routing_get_voice_stub_mixer,
15870 msm_routing_put_voice_stub_mixer),
15871 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15872 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
15873 1, 0, msm_routing_get_voice_stub_mixer,
15874 msm_routing_put_voice_stub_mixer),
15875 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
15877 1, 0, msm_routing_get_voice_stub_mixer,
15878 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879};
15880
15881static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015882 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015884 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15885 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015886 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15887 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015888 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15889 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015892 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15893 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015894 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15895 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015896 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15897 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015898 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015900 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15901 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015904 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15905 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015906 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
15907 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015908 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15909 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015910 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
15911 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053015912 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15913 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015914 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
15915 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
15916 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15917 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015918 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015920 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15921 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015922 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015924 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15925 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015926 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15927 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015928 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15929 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015930 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015932 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15933 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015934 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15935 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015936 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15937 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015938 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15940 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15941 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015942 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15943 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015944 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15945 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15947 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015948 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15949 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015950 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
15952 1, 0, msm_routing_get_voice_stub_mixer,
15953 msm_routing_put_voice_stub_mixer),
15954 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15955 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
15956 1, 0, msm_routing_get_voice_stub_mixer,
15957 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015958 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15959 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
15960 1, 0, msm_routing_get_voice_stub_mixer,
15961 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015962 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15963 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
15964 1, 0, msm_routing_get_voice_stub_mixer,
15965 msm_routing_put_voice_stub_mixer),
15966 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15967 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
15968 1, 0, msm_routing_get_voice_stub_mixer,
15969 msm_routing_put_voice_stub_mixer),
15970 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
15972 1, 0, msm_routing_get_voice_stub_mixer,
15973 msm_routing_put_voice_stub_mixer),
15974 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15975 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
15976 1, 0, msm_routing_get_voice_stub_mixer,
15977 msm_routing_put_voice_stub_mixer),
15978 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15979 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
15980 1, 0, msm_routing_get_voice_stub_mixer,
15981 msm_routing_put_voice_stub_mixer),
15982 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15983 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
15984 1, 0, msm_routing_get_voice_stub_mixer,
15985 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015986};
15987
15988static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015989 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
15990 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015991 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15992 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015993 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015995 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15996 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015997 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
15998 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015999 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16000 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016001 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016003 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16004 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016005 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016007 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16008 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016009 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16010 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016011 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16012 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016013 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16014 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016015 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16016 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016017 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16018 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016019 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16020 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016021 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16022 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16023 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16024 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016025 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16026 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016027 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16028 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016029 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16030 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016031 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16032 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016033 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16034 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016035 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16036 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016037 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16038 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016039 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16040 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016041 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16042 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016043 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16044 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016045 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16046 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016047 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16048 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016049 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16050 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016051 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16052 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016053 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16054 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16055 1, 0, msm_routing_get_voice_stub_mixer,
16056 msm_routing_put_voice_stub_mixer),
16057 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16058 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16059 1, 0, msm_routing_get_voice_stub_mixer,
16060 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016061 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16063 1, 0, msm_routing_get_voice_stub_mixer,
16064 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016065 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16066 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16067 1, 0, msm_routing_get_voice_stub_mixer,
16068 msm_routing_put_voice_stub_mixer),
16069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16071 1, 0, msm_routing_get_voice_stub_mixer,
16072 msm_routing_put_voice_stub_mixer),
16073 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16075 1, 0, msm_routing_get_voice_stub_mixer,
16076 msm_routing_put_voice_stub_mixer),
16077 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16078 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
16079 1, 0, msm_routing_get_voice_stub_mixer,
16080 msm_routing_put_voice_stub_mixer),
16081 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16082 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
16083 1, 0, msm_routing_get_voice_stub_mixer,
16084 msm_routing_put_voice_stub_mixer),
16085 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
16087 1, 0, msm_routing_get_voice_stub_mixer,
16088 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016089};
16090
16091static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016092 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
16093 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016094 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16095 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016096 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
16097 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016098 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16099 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016100 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
16101 MSM_BACKEND_DAI_INT_BT_SCO_TX,
16102 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016103 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016104 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
16105 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016106 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16107 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016108 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016110 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16111 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016112 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16113 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016114 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16115 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016116 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16117 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016118 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16119 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016120 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16121 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016122 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16123 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016124 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16125 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016126 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16127 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016128 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16130 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16131 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016132 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
16133 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016134 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16135 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016136 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016138 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16139 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016140 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
16141 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016142 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16143 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016144 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
16145 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016146 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16147 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016148 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016150 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16151 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016152 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
16153 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016154 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16155 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016156 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016158 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16159 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016160 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16161 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16162 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16163 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16164 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16165 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016166 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16168 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016169 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16170 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16171 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16172 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16173 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16174 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16175 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16176 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16177 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16178 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
16179 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
16180 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16181 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
16183 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16184 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
16185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
16186 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016187};
16188
16189static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016190 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16191 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016192 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016194 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16195 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016196 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016198 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16199 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016200 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016202 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16203 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016204 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016208 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16209 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016210 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16211 MSM_BACKEND_DAI_INT0_MI2S_RX,
16212 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016214 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16215 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016216 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016218 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16219 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016220 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016222 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016224 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016226 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016230 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16231 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016232 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16233 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016234 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_INT0_MI2S_RX,
16236 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16237 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016238};
16239
16240static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016241 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16242 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016243 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016245 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16246 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016247 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16250 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016251 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016253 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16254 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016255 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016257 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16258 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016259 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16260 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016261 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16262 MSM_BACKEND_DAI_INT4_MI2S_RX,
16263 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016265 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16266 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016267 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016269 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016271 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016273 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16274 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016275 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016277 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16278 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016279 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016281 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16282 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016283 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16284 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016285 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16286 MSM_BACKEND_DAI_INT4_MI2S_RX,
16287 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16288 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016289};
16290
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016291static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
16292 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16293 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16294 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
16295 msm_routing_put_port_mixer),
16296 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16297 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
16299 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080016300 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16302 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16303 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080016304 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16306 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16307 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016308};
16309
16310static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
16311 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16312 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16313 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
16314 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080016315 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16316 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16317 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16318 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016319 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080016320 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053016321 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16322 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080016323 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16324 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16325 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16326 msm_routing_put_port_mixer),
16327
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016328};
16329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016330static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016331 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16332 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016333 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016335 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16336 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016337 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016339 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16340 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016341 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016343 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16344 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016345 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016347 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16348 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016349 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016351 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16352 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016353 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016355 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16356 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016357 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016359 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16360 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016361 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016363 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16364 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016365 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016367 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016369 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16370 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016371 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16372 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16373 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016375 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016377 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016379 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16380 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016381 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016383 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016385 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016389 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016391 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16392 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016393 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016395 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16396 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016397 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16398 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016399 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16400 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16401 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016403 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16404 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016405 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016407 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016409 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016411 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
16412 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016413 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016415 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
16416 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016417 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016419 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
16420 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016421 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016423 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053016425 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16426 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016427 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16429 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16430 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016431 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16432 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16433 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053016434 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016435};
16436
16437static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016438 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16439 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016440 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016442 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016444 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016446 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16447 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016448 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016450 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16451 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016452 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016454 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16455 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016456 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
16457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016458 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16459 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016460 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16461 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053016462 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16463 MSM_BACKEND_DAI_AUXPCM_RX,
16464 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
16465 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016466};
16467
16468static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016469 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16470 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016471 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016473 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16474 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016475 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016477 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16478 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016479 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016481 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16482 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016483 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16484 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016485};
16486
16487static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016488 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16489 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016490 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016492 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16493 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016494 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016496 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16497 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016498 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16499 msm_routing_put_port_mixer),
16500};
16501
16502static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016503 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16504 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016505 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016507 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16508 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016509 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016511 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16512 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016513 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16514 msm_routing_put_port_mixer),
16515};
16516
Rohit Kumara5077932017-09-10 22:05:05 +053016517static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016518 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16519 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016520 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016522 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016524 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016526 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16527 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016528 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16529 msm_routing_put_port_mixer),
16530};
16531
Karthikeyan Manic3700752019-03-11 18:33:53 -070016532static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
16533 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16534 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16535 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16536 msm_routing_put_port_mixer),
16537 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16538 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16539 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16540 msm_routing_put_port_mixer),
16541 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16542 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16543 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16544 msm_routing_put_port_mixer),
16545};
16546
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016547static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016548 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16549 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016550 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016552 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016554 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
16555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016556 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016558 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016560 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016562 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016564 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16565 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016566 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016568 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16569 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016570 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16571 msm_routing_put_port_mixer),
16572};
16573
16574static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016575 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
16576 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016577 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
16578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016579 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16580 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016581 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016583 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016585 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
16586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016587 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
16588 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016589 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
16590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016591 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
16592 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016593 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
16594 msm_routing_put_port_mixer),
16595};
16596
16597static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016598 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016600 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016602 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016604 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016606 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16607 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016608 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016610 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016612 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016614 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016616 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016618 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016620 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016622 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016624 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016626 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016628 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016630 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16631 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016632 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016634 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016636 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016638 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016640 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016642 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16643 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016644 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16645 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016646 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16647 MSM_BACKEND_DAI_SLIMBUS_6_RX,
16648 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16649 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016650};
16651
16652static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016653 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016655 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016657 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016659 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16660 msm_routing_put_port_mixer),
16661};
16662
16663static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016664 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16665 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016666 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016668 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16669 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016670 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16671 msm_routing_put_port_mixer),
16672};
16673
16674
16675static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016676 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16677 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016678 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16679 msm_routing_put_port_mixer),
16680};
16681
16682static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016683 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16684 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016685 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16686 msm_routing_put_port_mixer),
16687};
16688
Karthikeyan Mani57550082018-05-03 18:43:58 -070016689static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
16690 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16691 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
16692 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16693 msm_routing_put_port_mixer),
16694};
16695
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016696static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016697 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16698 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016699 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16700 msm_routing_put_port_mixer),
16701};
16702
16703static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016704 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16705 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016706 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016708 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16709 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016710 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16711 msm_routing_put_port_mixer),
16712};
16713
16714static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016715 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16716 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016717 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016719 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16720 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016721 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016723 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16724 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016725 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016727 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16728 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016729 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016731 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16732 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016733 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016735 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16736 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016737 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016739 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16740 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016741 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16742 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016743 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16744 MSM_BACKEND_DAI_PRI_MI2S_RX,
16745 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016747 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16748 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016749 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016751 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16752 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016753 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016755 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16756 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016757 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16758 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016759};
16760
16761static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016762 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
16763 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016764 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
16765 msm_routing_put_port_mixer),
16766};
16767
16768static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016769 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16770 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016771 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016773 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16774 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016775 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016777 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16778 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016779 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016781 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16782 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016783 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016785 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16786 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016787 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016789 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16790 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016791 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016793 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16794 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016795 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016797 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16798 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016799 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16800 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016801 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16802 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
16803 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016805 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16806 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016807 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16808 msm_routing_put_port_mixer),
16809};
16810
Rohit Kumara5077932017-09-10 22:05:05 +053016811static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016812 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16813 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016814 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016816 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16817 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016818 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016820 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16821 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016822 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016824 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16825 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016826 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016828 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16829 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016830 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16831 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016832 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16833 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
16834 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016836 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16837 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016838 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016840 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16841 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016842 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16843 msm_routing_put_port_mixer),
16844};
16845
Karthikeyan Manic3700752019-03-11 18:33:53 -070016846static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
16847 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16848 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16849 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16850 msm_routing_put_port_mixer),
16851 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16852 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16853 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16854 msm_routing_put_port_mixer),
16855 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16856 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16857 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16858 msm_routing_put_port_mixer),
16859 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16860 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16861 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16862 msm_routing_put_port_mixer),
16863 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16864 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16865 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16866 msm_routing_put_port_mixer),
16867 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16868 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16869 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16870 msm_routing_put_port_mixer),
16871 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16872 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16873 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16874 msm_routing_put_port_mixer),
16875 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16876 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16877 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16878 msm_routing_put_port_mixer),
16879};
16880
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016881static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016882 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16883 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016884 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16885 msm_routing_get_port_mixer,
16886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016887 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16888 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016889 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16890 msm_routing_get_port_mixer,
16891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016892 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16893 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016894 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
16895 msm_routing_get_port_mixer,
16896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016897 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16898 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016899 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16900 msm_routing_get_port_mixer,
16901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016902 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16903 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016904 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16905 msm_routing_get_port_mixer,
16906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016907 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16908 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016909 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16910 msm_routing_get_port_mixer,
16911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016912 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16913 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016914 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16915 msm_routing_get_port_mixer,
16916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016917 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16918 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016919 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16920 msm_routing_get_port_mixer,
16921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016922 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
16923 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016924 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
16925 msm_routing_get_port_mixer,
16926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016927 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
16928 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016929 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
16930 msm_routing_get_port_mixer,
16931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016932 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
16933 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016934 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
16935 msm_routing_get_port_mixer,
16936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016937 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
16938 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016939 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
16940 msm_routing_get_port_mixer,
16941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016942 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16943 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016944 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16945 msm_routing_get_port_mixer,
16946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016947 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16948 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016949 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16950 msm_routing_get_port_mixer,
16951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016952 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16953 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016954 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16955 msm_routing_get_port_mixer,
16956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016957 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16958 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016959 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16960 msm_routing_get_port_mixer,
16961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016962 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16963 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016964 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16965 msm_routing_get_port_mixer,
16966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016967 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16968 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016969 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16970 msm_routing_get_port_mixer,
16971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016972 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16973 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016974 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16975 msm_routing_get_port_mixer,
16976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016977 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16978 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016979 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16980 msm_routing_get_port_mixer,
16981 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016982 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
16983 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16984 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
16985 msm_routing_get_port_mixer,
16986 msm_routing_put_port_mixer),
16987 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
16988 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16989 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
16990 msm_routing_get_port_mixer,
16991 msm_routing_put_port_mixer),
16992 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
16993 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16994 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
16995 msm_routing_get_port_mixer,
16996 msm_routing_put_port_mixer),
16997 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
16998 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16999 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17000 msm_routing_get_port_mixer,
17001 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017002};
17003
17004static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017005 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17006 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017007 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17008 msm_routing_get_port_mixer,
17009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017010 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17011 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017012 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17013 msm_routing_get_port_mixer,
17014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017015 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17016 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017017 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17018 msm_routing_get_port_mixer,
17019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017020 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17021 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017022 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17023 msm_routing_get_port_mixer,
17024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017025 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17026 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017027 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17028 msm_routing_get_port_mixer,
17029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017030 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17031 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017032 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17033 msm_routing_get_port_mixer,
17034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017035 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17036 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017037 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17038 msm_routing_get_port_mixer,
17039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017040 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17041 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017042 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17043 msm_routing_get_port_mixer,
17044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017045 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17046 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017047 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17048 msm_routing_get_port_mixer,
17049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017050 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17051 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017052 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17053 msm_routing_get_port_mixer,
17054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017055 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17056 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017057 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17058 msm_routing_get_port_mixer,
17059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017060 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17061 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017062 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17063 msm_routing_get_port_mixer,
17064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017065 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17066 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017067 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17068 msm_routing_get_port_mixer,
17069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017070 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17071 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017072 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17073 msm_routing_get_port_mixer,
17074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017075 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17076 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017077 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17078 msm_routing_get_port_mixer,
17079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017080 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17081 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017082 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17083 msm_routing_get_port_mixer,
17084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017085 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17086 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017087 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17088 msm_routing_get_port_mixer,
17089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017090 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17091 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017092 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17093 msm_routing_get_port_mixer,
17094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017095 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17096 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017097 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17098 msm_routing_get_port_mixer,
17099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017100 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17101 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017102 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17103 msm_routing_get_port_mixer,
17104 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017105 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17106 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17107 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17108 msm_routing_get_port_mixer,
17109 msm_routing_put_port_mixer),
17110 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17111 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17112 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17113 msm_routing_get_port_mixer,
17114 msm_routing_put_port_mixer),
17115 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17116 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17117 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17118 msm_routing_get_port_mixer,
17119 msm_routing_put_port_mixer),
17120 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17121 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17122 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17123 msm_routing_get_port_mixer,
17124 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017125};
17126
17127static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017128 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17129 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017130 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17131 msm_routing_get_port_mixer,
17132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017133 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17134 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017135 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17136 msm_routing_get_port_mixer,
17137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017138 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17139 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017140 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17141 msm_routing_get_port_mixer,
17142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017143 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17144 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017145 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17146 msm_routing_get_port_mixer,
17147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017148 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17149 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017150 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17151 msm_routing_get_port_mixer,
17152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017153 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17154 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017155 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17156 msm_routing_get_port_mixer,
17157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017158 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17159 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017160 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17161 msm_routing_get_port_mixer,
17162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017163 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17164 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017165 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17166 msm_routing_get_port_mixer,
17167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017168 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17169 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017170 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17171 msm_routing_get_port_mixer,
17172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017173 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17174 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017175 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17176 msm_routing_get_port_mixer,
17177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017178 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17179 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017180 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17181 msm_routing_get_port_mixer,
17182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017183 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17184 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017185 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17186 msm_routing_get_port_mixer,
17187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017188 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17189 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017190 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17191 msm_routing_get_port_mixer,
17192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017193 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17194 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017195 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17196 msm_routing_get_port_mixer,
17197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017198 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17199 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017200 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17201 msm_routing_get_port_mixer,
17202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017203 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17204 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017205 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17206 msm_routing_get_port_mixer,
17207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017208 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17209 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017210 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17211 msm_routing_get_port_mixer,
17212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017213 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17214 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017215 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17216 msm_routing_get_port_mixer,
17217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017218 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17219 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017220 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17221 msm_routing_get_port_mixer,
17222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017223 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17224 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017225 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17226 msm_routing_get_port_mixer,
17227 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017228 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17229 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17230 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17231 msm_routing_get_port_mixer,
17232 msm_routing_put_port_mixer),
17233 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17234 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17235 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17236 msm_routing_get_port_mixer,
17237 msm_routing_put_port_mixer),
17238 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17239 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17240 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17241 msm_routing_get_port_mixer,
17242 msm_routing_put_port_mixer),
17243 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17244 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17245 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17246 msm_routing_get_port_mixer,
17247 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017248};
17249
17250static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017251 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17252 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017253 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17254 msm_routing_get_port_mixer,
17255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017256 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17257 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017258 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17259 msm_routing_get_port_mixer,
17260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017261 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17262 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017263 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17264 msm_routing_get_port_mixer,
17265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017266 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17267 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017268 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17269 msm_routing_get_port_mixer,
17270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017271 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17272 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017273 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17274 msm_routing_get_port_mixer,
17275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017276 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17277 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017278 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17279 msm_routing_get_port_mixer,
17280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017281 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17282 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017283 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17284 msm_routing_get_port_mixer,
17285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017286 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17287 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017288 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17289 msm_routing_get_port_mixer,
17290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017291 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17292 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017293 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17294 msm_routing_get_port_mixer,
17295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017296 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17297 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017298 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17299 msm_routing_get_port_mixer,
17300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017301 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17302 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017303 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17304 msm_routing_get_port_mixer,
17305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017306 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17307 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017308 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17309 msm_routing_get_port_mixer,
17310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017311 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17312 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017313 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17314 msm_routing_get_port_mixer,
17315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017316 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17317 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017318 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17319 msm_routing_get_port_mixer,
17320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017321 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17322 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017323 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17324 msm_routing_get_port_mixer,
17325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017326 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17327 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017328 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17329 msm_routing_get_port_mixer,
17330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017331 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17332 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017333 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17334 msm_routing_get_port_mixer,
17335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017336 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17337 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017338 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17339 msm_routing_get_port_mixer,
17340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017341 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17342 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017343 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17344 msm_routing_get_port_mixer,
17345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017346 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17347 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017348 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17349 msm_routing_get_port_mixer,
17350 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017351 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17352 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17353 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17354 msm_routing_get_port_mixer,
17355 msm_routing_put_port_mixer),
17356 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17357 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17358 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17359 msm_routing_get_port_mixer,
17360 msm_routing_put_port_mixer),
17361 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17362 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17363 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17364 msm_routing_get_port_mixer,
17365 msm_routing_put_port_mixer),
17366 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17367 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17368 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17369 msm_routing_get_port_mixer,
17370 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017371};
17372
17373static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017374 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17375 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017376 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17377 msm_routing_get_port_mixer,
17378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017379 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17380 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017381 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17382 msm_routing_get_port_mixer,
17383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017384 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17385 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017386 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17387 msm_routing_get_port_mixer,
17388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017389 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17390 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017391 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17392 msm_routing_get_port_mixer,
17393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017394 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17395 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017396 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17397 msm_routing_get_port_mixer,
17398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017399 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17400 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017401 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17402 msm_routing_get_port_mixer,
17403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017404 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17405 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017406 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17407 msm_routing_get_port_mixer,
17408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017409 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17410 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017411 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17412 msm_routing_get_port_mixer,
17413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017414 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
17415 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017416 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
17417 msm_routing_get_port_mixer,
17418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017419 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
17420 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017421 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
17422 msm_routing_get_port_mixer,
17423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017424 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
17425 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017426 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
17427 msm_routing_get_port_mixer,
17428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017429 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
17430 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017431 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
17432 msm_routing_get_port_mixer,
17433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017434 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17435 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017436 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17437 msm_routing_get_port_mixer,
17438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017439 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17440 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017441 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17442 msm_routing_get_port_mixer,
17443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017444 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17445 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017446 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17447 msm_routing_get_port_mixer,
17448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017449 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17450 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017451 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17452 msm_routing_get_port_mixer,
17453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017454 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17455 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017456 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17457 msm_routing_get_port_mixer,
17458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017459 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17460 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017461 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17462 msm_routing_get_port_mixer,
17463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017464 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17465 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017466 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17467 msm_routing_get_port_mixer,
17468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017469 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17470 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017471 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17472 msm_routing_get_port_mixer,
17473 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017474 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17475 MSM_BACKEND_DAI_SEC_TDM_RX_0,
17476 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17477 msm_routing_get_port_mixer,
17478 msm_routing_put_port_mixer),
17479 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17480 MSM_BACKEND_DAI_SEC_TDM_RX_0,
17481 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17482 msm_routing_get_port_mixer,
17483 msm_routing_put_port_mixer),
17484 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17485 MSM_BACKEND_DAI_SEC_TDM_RX_0,
17486 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17487 msm_routing_get_port_mixer,
17488 msm_routing_put_port_mixer),
17489 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17490 MSM_BACKEND_DAI_SEC_TDM_RX_0,
17491 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17492 msm_routing_get_port_mixer,
17493 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017494};
17495
17496static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017497 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17498 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017499 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17500 msm_routing_get_port_mixer,
17501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017502 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17503 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017504 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17505 msm_routing_get_port_mixer,
17506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017507 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17508 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017509 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17510 msm_routing_get_port_mixer,
17511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017512 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17513 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017514 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17515 msm_routing_get_port_mixer,
17516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017517 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17518 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017519 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17520 msm_routing_get_port_mixer,
17521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017522 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17523 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017524 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17525 msm_routing_get_port_mixer,
17526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017527 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17528 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017529 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17530 msm_routing_get_port_mixer,
17531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017532 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17533 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017534 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17535 msm_routing_get_port_mixer,
17536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017537 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
17538 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017539 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
17540 msm_routing_get_port_mixer,
17541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017542 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
17543 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017544 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
17545 msm_routing_get_port_mixer,
17546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017547 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
17548 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017549 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
17550 msm_routing_get_port_mixer,
17551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017552 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
17553 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017554 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
17555 msm_routing_get_port_mixer,
17556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017557 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17558 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017559 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17560 msm_routing_get_port_mixer,
17561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017562 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17563 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017564 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17565 msm_routing_get_port_mixer,
17566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017567 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17568 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017569 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17570 msm_routing_get_port_mixer,
17571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017572 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17573 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017574 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17575 msm_routing_get_port_mixer,
17576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017577 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17578 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017579 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17580 msm_routing_get_port_mixer,
17581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017582 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17583 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017584 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17585 msm_routing_get_port_mixer,
17586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017587 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17588 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017589 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17590 msm_routing_get_port_mixer,
17591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017592 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17593 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017594 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17595 msm_routing_get_port_mixer,
17596 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017597 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17598 MSM_BACKEND_DAI_SEC_TDM_RX_1,
17599 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17600 msm_routing_get_port_mixer,
17601 msm_routing_put_port_mixer),
17602 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17603 MSM_BACKEND_DAI_SEC_TDM_RX_1,
17604 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17605 msm_routing_get_port_mixer,
17606 msm_routing_put_port_mixer),
17607 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17608 MSM_BACKEND_DAI_SEC_TDM_RX_1,
17609 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17610 msm_routing_get_port_mixer,
17611 msm_routing_put_port_mixer),
17612 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17613 MSM_BACKEND_DAI_SEC_TDM_RX_1,
17614 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17615 msm_routing_get_port_mixer,
17616 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017617};
17618
17619static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017620 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17621 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017622 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17623 msm_routing_get_port_mixer,
17624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017625 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17626 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017627 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17628 msm_routing_get_port_mixer,
17629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017630 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17631 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017632 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17633 msm_routing_get_port_mixer,
17634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017635 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17636 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017637 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17638 msm_routing_get_port_mixer,
17639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017640 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17641 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017642 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17643 msm_routing_get_port_mixer,
17644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017645 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17646 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017647 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17648 msm_routing_get_port_mixer,
17649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017650 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17651 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017652 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17653 msm_routing_get_port_mixer,
17654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017655 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17656 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017657 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17658 msm_routing_get_port_mixer,
17659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017660 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
17661 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017662 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
17663 msm_routing_get_port_mixer,
17664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017665 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
17666 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017667 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
17668 msm_routing_get_port_mixer,
17669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017670 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
17671 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017672 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
17673 msm_routing_get_port_mixer,
17674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017675 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
17676 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017677 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
17678 msm_routing_get_port_mixer,
17679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017680 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17681 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017682 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17683 msm_routing_get_port_mixer,
17684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017685 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17686 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017687 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17688 msm_routing_get_port_mixer,
17689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017690 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17691 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017692 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17693 msm_routing_get_port_mixer,
17694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017695 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17696 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017697 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17698 msm_routing_get_port_mixer,
17699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017700 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17701 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017702 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17703 msm_routing_get_port_mixer,
17704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017705 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17706 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017707 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17708 msm_routing_get_port_mixer,
17709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017710 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17711 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017712 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17713 msm_routing_get_port_mixer,
17714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017715 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17716 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017717 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17718 msm_routing_get_port_mixer,
17719 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017720 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17721 MSM_BACKEND_DAI_SEC_TDM_RX_2,
17722 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17723 msm_routing_get_port_mixer,
17724 msm_routing_put_port_mixer),
17725 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17726 MSM_BACKEND_DAI_SEC_TDM_RX_2,
17727 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17728 msm_routing_get_port_mixer,
17729 msm_routing_put_port_mixer),
17730 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17731 MSM_BACKEND_DAI_SEC_TDM_RX_2,
17732 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17733 msm_routing_get_port_mixer,
17734 msm_routing_put_port_mixer),
17735 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17736 MSM_BACKEND_DAI_SEC_TDM_RX_2,
17737 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17738 msm_routing_get_port_mixer,
17739 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017740};
17741
17742static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017743 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17744 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017745 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17746 msm_routing_get_port_mixer,
17747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017748 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17749 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017750 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17751 msm_routing_get_port_mixer,
17752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017753 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17754 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017755 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17756 msm_routing_get_port_mixer,
17757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017758 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17759 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017760 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17761 msm_routing_get_port_mixer,
17762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017763 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17764 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017765 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17766 msm_routing_get_port_mixer,
17767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017768 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17769 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017770 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17771 msm_routing_get_port_mixer,
17772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017773 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17774 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017775 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17776 msm_routing_get_port_mixer,
17777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017778 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17779 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017780 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17781 msm_routing_get_port_mixer,
17782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017783 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
17784 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017785 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
17786 msm_routing_get_port_mixer,
17787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017788 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
17789 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017790 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
17791 msm_routing_get_port_mixer,
17792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017793 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
17794 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017795 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
17796 msm_routing_get_port_mixer,
17797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017798 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
17799 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017800 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
17801 msm_routing_get_port_mixer,
17802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017803 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17804 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017805 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17806 msm_routing_get_port_mixer,
17807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017808 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17809 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017810 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17811 msm_routing_get_port_mixer,
17812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017813 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17814 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017815 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17816 msm_routing_get_port_mixer,
17817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017818 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17819 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017820 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17821 msm_routing_get_port_mixer,
17822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017823 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17824 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017825 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17826 msm_routing_get_port_mixer,
17827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017828 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17829 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017830 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17831 msm_routing_get_port_mixer,
17832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017833 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17834 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017835 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17836 msm_routing_get_port_mixer,
17837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017838 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17839 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017840 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17841 msm_routing_get_port_mixer,
17842 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017843 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17844 MSM_BACKEND_DAI_SEC_TDM_RX_3,
17845 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17846 msm_routing_get_port_mixer,
17847 msm_routing_put_port_mixer),
17848 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17849 MSM_BACKEND_DAI_SEC_TDM_RX_3,
17850 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17851 msm_routing_get_port_mixer,
17852 msm_routing_put_port_mixer),
17853 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17854 MSM_BACKEND_DAI_SEC_TDM_RX_3,
17855 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17856 msm_routing_get_port_mixer,
17857 msm_routing_put_port_mixer),
17858 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17859 MSM_BACKEND_DAI_SEC_TDM_RX_3,
17860 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17861 msm_routing_get_port_mixer,
17862 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017863};
17864
Derek Chenfdcc0982018-10-02 15:14:03 -070017865static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
17866 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
17867 MSM_BACKEND_DAI_SEC_TDM_RX_7,
17868 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
17869 msm_routing_get_port_mixer,
17870 msm_routing_put_port_mixer),
17871};
17872
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017873static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017874 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17875 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017876 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17877 msm_routing_get_port_mixer,
17878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017879 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17880 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017881 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17882 msm_routing_get_port_mixer,
17883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017884 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17885 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017886 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17887 msm_routing_get_port_mixer,
17888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017889 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17890 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017891 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17892 msm_routing_get_port_mixer,
17893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017894 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17895 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017896 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17897 msm_routing_get_port_mixer,
17898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017899 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17900 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017901 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17902 msm_routing_get_port_mixer,
17903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017904 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17905 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017906 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17907 msm_routing_get_port_mixer,
17908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017909 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17910 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017911 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17912 msm_routing_get_port_mixer,
17913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017914 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17915 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017916 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
17917 msm_routing_get_port_mixer,
17918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017919 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
17920 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017921 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
17922 msm_routing_get_port_mixer,
17923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017924 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
17925 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017926 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
17927 msm_routing_get_port_mixer,
17928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017929 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
17930 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017931 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
17932 msm_routing_get_port_mixer,
17933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017934 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17935 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017936 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17937 msm_routing_get_port_mixer,
17938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017939 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17940 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017941 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17942 msm_routing_get_port_mixer,
17943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017944 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17945 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017946 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17947 msm_routing_get_port_mixer,
17948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017949 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17950 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017951 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17952 msm_routing_get_port_mixer,
17953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017954 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17955 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017956 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17957 msm_routing_get_port_mixer,
17958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017959 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17960 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017961 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17962 msm_routing_get_port_mixer,
17963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017964 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17965 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017966 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17967 msm_routing_get_port_mixer,
17968 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017969 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17970 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017971 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17972 msm_routing_get_port_mixer,
17973 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017974 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17975 MSM_BACKEND_DAI_TERT_TDM_RX_0,
17976 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17977 msm_routing_get_port_mixer,
17978 msm_routing_put_port_mixer),
17979 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17980 MSM_BACKEND_DAI_TERT_TDM_RX_0,
17981 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17982 msm_routing_get_port_mixer,
17983 msm_routing_put_port_mixer),
17984 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17985 MSM_BACKEND_DAI_TERT_TDM_RX_0,
17986 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17987 msm_routing_get_port_mixer,
17988 msm_routing_put_port_mixer),
17989 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17990 MSM_BACKEND_DAI_TERT_TDM_RX_0,
17991 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17992 msm_routing_get_port_mixer,
17993 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017994};
17995
17996static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017997 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17998 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017999 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18000 msm_routing_get_port_mixer,
18001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018002 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18003 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018004 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18005 msm_routing_get_port_mixer,
18006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018007 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18008 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018009 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18010 msm_routing_get_port_mixer,
18011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018012 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18013 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018014 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18015 msm_routing_get_port_mixer,
18016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018017 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18018 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018019 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18020 msm_routing_get_port_mixer,
18021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018022 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18023 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018024 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18025 msm_routing_get_port_mixer,
18026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018027 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18028 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018029 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18030 msm_routing_get_port_mixer,
18031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018032 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18033 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018034 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18035 msm_routing_get_port_mixer,
18036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018037 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18038 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018039 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18040 msm_routing_get_port_mixer,
18041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018042 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18043 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018044 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18045 msm_routing_get_port_mixer,
18046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018047 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18048 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018049 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18050 msm_routing_get_port_mixer,
18051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018052 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18053 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018054 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18055 msm_routing_get_port_mixer,
18056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018057 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18058 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018059 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18060 msm_routing_get_port_mixer,
18061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018062 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18063 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018064 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18065 msm_routing_get_port_mixer,
18066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018067 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18068 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018069 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18070 msm_routing_get_port_mixer,
18071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018072 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18073 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018074 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18075 msm_routing_get_port_mixer,
18076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018077 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18078 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018079 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18080 msm_routing_get_port_mixer,
18081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018082 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18083 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018084 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18085 msm_routing_get_port_mixer,
18086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018087 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18088 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018089 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18090 msm_routing_get_port_mixer,
18091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018092 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18093 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018094 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18095 msm_routing_get_port_mixer,
18096 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018097 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18098 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18099 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18100 msm_routing_get_port_mixer,
18101 msm_routing_put_port_mixer),
18102 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18103 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18104 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18105 msm_routing_get_port_mixer,
18106 msm_routing_put_port_mixer),
18107 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18108 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18109 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18110 msm_routing_get_port_mixer,
18111 msm_routing_put_port_mixer),
18112 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18113 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18114 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18115 msm_routing_get_port_mixer,
18116 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018117};
18118
18119static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018120 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18121 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018122 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18123 msm_routing_get_port_mixer,
18124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018125 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18126 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018127 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18128 msm_routing_get_port_mixer,
18129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018130 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18131 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018132 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18133 msm_routing_get_port_mixer,
18134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018135 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18136 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018137 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18138 msm_routing_get_port_mixer,
18139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018140 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18141 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018142 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18143 msm_routing_get_port_mixer,
18144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018145 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18146 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018147 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18148 msm_routing_get_port_mixer,
18149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018150 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18151 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018152 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18153 msm_routing_get_port_mixer,
18154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018155 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18156 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018157 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18158 msm_routing_get_port_mixer,
18159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018160 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18161 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018162 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18163 msm_routing_get_port_mixer,
18164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018165 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18166 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018167 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18168 msm_routing_get_port_mixer,
18169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018170 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18171 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018172 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18173 msm_routing_get_port_mixer,
18174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018175 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18176 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018177 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18178 msm_routing_get_port_mixer,
18179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018180 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18181 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018182 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18183 msm_routing_get_port_mixer,
18184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018185 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18186 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018187 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18188 msm_routing_get_port_mixer,
18189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018190 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18191 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018192 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18193 msm_routing_get_port_mixer,
18194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018195 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18196 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018197 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18198 msm_routing_get_port_mixer,
18199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018200 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18201 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018202 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18203 msm_routing_get_port_mixer,
18204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018205 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18206 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018207 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18208 msm_routing_get_port_mixer,
18209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018210 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18211 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018212 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18213 msm_routing_get_port_mixer,
18214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018215 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18216 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018217 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18218 msm_routing_get_port_mixer,
18219 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018220 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18221 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18222 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18223 msm_routing_get_port_mixer,
18224 msm_routing_put_port_mixer),
18225 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18226 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18227 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18228 msm_routing_get_port_mixer,
18229 msm_routing_put_port_mixer),
18230 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18231 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18232 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18233 msm_routing_get_port_mixer,
18234 msm_routing_put_port_mixer),
18235 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18236 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18237 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18238 msm_routing_get_port_mixer,
18239 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018240};
18241
18242static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018243 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18244 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018245 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18246 msm_routing_get_port_mixer,
18247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018248 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18249 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018250 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18251 msm_routing_get_port_mixer,
18252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018253 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18254 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018255 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18256 msm_routing_get_port_mixer,
18257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018258 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18259 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018260 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18261 msm_routing_get_port_mixer,
18262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018263 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18264 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018265 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18266 msm_routing_get_port_mixer,
18267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018268 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18269 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018270 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18271 msm_routing_get_port_mixer,
18272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018273 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18274 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018275 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18276 msm_routing_get_port_mixer,
18277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018278 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18279 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018280 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18281 msm_routing_get_port_mixer,
18282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018283 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18284 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018285 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18286 msm_routing_get_port_mixer,
18287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018288 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18289 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018290 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18291 msm_routing_get_port_mixer,
18292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018293 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18294 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018295 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18296 msm_routing_get_port_mixer,
18297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018298 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18299 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018300 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18301 msm_routing_get_port_mixer,
18302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018303 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18304 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018305 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18306 msm_routing_get_port_mixer,
18307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018308 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18309 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018310 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18311 msm_routing_get_port_mixer,
18312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018313 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18314 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018315 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18316 msm_routing_get_port_mixer,
18317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018318 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18319 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018320 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18321 msm_routing_get_port_mixer,
18322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018323 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18324 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018325 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18326 msm_routing_get_port_mixer,
18327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018328 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18329 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018330 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18331 msm_routing_get_port_mixer,
18332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018333 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18334 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018335 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18336 msm_routing_get_port_mixer,
18337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018338 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18339 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018340 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18341 msm_routing_get_port_mixer,
18342 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018343 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18344 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18345 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18346 msm_routing_get_port_mixer,
18347 msm_routing_put_port_mixer),
18348 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18349 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18350 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18351 msm_routing_get_port_mixer,
18352 msm_routing_put_port_mixer),
18353 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18354 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18355 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18356 msm_routing_get_port_mixer,
18357 msm_routing_put_port_mixer),
18358 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18359 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18360 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18361 msm_routing_get_port_mixer,
18362 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018363};
18364
18365static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018366 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18367 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018368 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18369 msm_routing_get_port_mixer,
18370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018371 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18372 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018373 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18374 msm_routing_get_port_mixer,
18375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018376 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18377 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018378 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18379 msm_routing_get_port_mixer,
18380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018381 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18382 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018383 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18384 msm_routing_get_port_mixer,
18385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018386 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18387 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018388 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18389 msm_routing_get_port_mixer,
18390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018391 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18392 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018393 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18394 msm_routing_get_port_mixer,
18395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018396 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18397 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018398 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18399 msm_routing_get_port_mixer,
18400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018401 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18402 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018403 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18404 msm_routing_get_port_mixer,
18405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018406 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18407 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018408 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18409 msm_routing_get_port_mixer,
18410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018411 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18412 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018413 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18414 msm_routing_get_port_mixer,
18415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018416 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18417 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018418 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18419 msm_routing_get_port_mixer,
18420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018421 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18422 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018423 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18424 msm_routing_get_port_mixer,
18425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018426 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18427 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018428 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18429 msm_routing_get_port_mixer,
18430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018431 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18432 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018433 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18434 msm_routing_get_port_mixer,
18435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018436 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18437 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018438 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18439 msm_routing_get_port_mixer,
18440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018441 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18442 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018443 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18444 msm_routing_get_port_mixer,
18445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018446 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18447 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018448 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18449 msm_routing_get_port_mixer,
18450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018451 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18452 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018453 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18454 msm_routing_get_port_mixer,
18455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018456 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18457 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018458 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18459 msm_routing_get_port_mixer,
18460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018461 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18462 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018463 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18464 msm_routing_get_port_mixer,
18465 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018466 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18467 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
18468 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18469 msm_routing_get_port_mixer,
18470 msm_routing_put_port_mixer),
18471 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18472 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
18473 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18474 msm_routing_get_port_mixer,
18475 msm_routing_put_port_mixer),
18476 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18477 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
18478 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18479 msm_routing_get_port_mixer,
18480 msm_routing_put_port_mixer),
18481 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18482 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
18483 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18484 msm_routing_get_port_mixer,
18485 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018486};
18487
18488static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018489 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18490 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018491 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18492 msm_routing_get_port_mixer,
18493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018494 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18495 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018496 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18497 msm_routing_get_port_mixer,
18498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018499 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18500 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018501 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18502 msm_routing_get_port_mixer,
18503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018504 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18505 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018506 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18507 msm_routing_get_port_mixer,
18508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018509 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18510 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018511 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18512 msm_routing_get_port_mixer,
18513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018514 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18515 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018516 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18517 msm_routing_get_port_mixer,
18518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018519 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18520 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018521 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18522 msm_routing_get_port_mixer,
18523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018524 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18525 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018526 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18527 msm_routing_get_port_mixer,
18528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018529 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18530 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018531 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18532 msm_routing_get_port_mixer,
18533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018534 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18535 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018536 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18537 msm_routing_get_port_mixer,
18538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018539 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18540 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018541 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18542 msm_routing_get_port_mixer,
18543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018544 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18545 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018546 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18547 msm_routing_get_port_mixer,
18548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018549 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18550 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018551 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18552 msm_routing_get_port_mixer,
18553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018554 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18555 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018556 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18557 msm_routing_get_port_mixer,
18558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018559 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18560 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018561 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18562 msm_routing_get_port_mixer,
18563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018564 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18565 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018566 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18567 msm_routing_get_port_mixer,
18568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018569 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18570 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018571 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18572 msm_routing_get_port_mixer,
18573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018574 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18575 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018576 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18577 msm_routing_get_port_mixer,
18578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018579 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18580 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018581 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18582 msm_routing_get_port_mixer,
18583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018584 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18585 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018586 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18587 msm_routing_get_port_mixer,
18588 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018589 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18590 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
18591 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18592 msm_routing_get_port_mixer,
18593 msm_routing_put_port_mixer),
18594 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18595 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
18596 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18597 msm_routing_get_port_mixer,
18598 msm_routing_put_port_mixer),
18599 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18600 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
18601 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18602 msm_routing_get_port_mixer,
18603 msm_routing_put_port_mixer),
18604 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18605 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
18606 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18607 msm_routing_get_port_mixer,
18608 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018609};
18610
18611static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018612 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18613 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018614 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18615 msm_routing_get_port_mixer,
18616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018617 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18618 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018619 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18620 msm_routing_get_port_mixer,
18621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018622 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18623 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018624 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18625 msm_routing_get_port_mixer,
18626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018627 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18628 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018629 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18630 msm_routing_get_port_mixer,
18631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018632 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18633 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018634 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18635 msm_routing_get_port_mixer,
18636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018637 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18638 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018639 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18640 msm_routing_get_port_mixer,
18641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018642 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18643 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018644 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18645 msm_routing_get_port_mixer,
18646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018647 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18648 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018649 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18650 msm_routing_get_port_mixer,
18651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018652 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18653 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018654 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18655 msm_routing_get_port_mixer,
18656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018657 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18658 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018659 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18660 msm_routing_get_port_mixer,
18661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018662 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18663 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018664 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18665 msm_routing_get_port_mixer,
18666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018667 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18668 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018669 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18670 msm_routing_get_port_mixer,
18671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018672 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18673 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018674 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18675 msm_routing_get_port_mixer,
18676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018677 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18678 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018679 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18680 msm_routing_get_port_mixer,
18681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018682 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18683 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018684 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18685 msm_routing_get_port_mixer,
18686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018687 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18688 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018689 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18690 msm_routing_get_port_mixer,
18691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018692 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18693 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018694 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18695 msm_routing_get_port_mixer,
18696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018697 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18698 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018699 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18700 msm_routing_get_port_mixer,
18701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018702 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18703 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018704 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18705 msm_routing_get_port_mixer,
18706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018707 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18708 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018709 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18710 msm_routing_get_port_mixer,
18711 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018712 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18713 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
18714 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18715 msm_routing_get_port_mixer,
18716 msm_routing_put_port_mixer),
18717 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18718 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
18719 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18720 msm_routing_get_port_mixer,
18721 msm_routing_put_port_mixer),
18722 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18723 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
18724 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18725 msm_routing_get_port_mixer,
18726 msm_routing_put_port_mixer),
18727 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18728 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
18729 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18730 msm_routing_get_port_mixer,
18731 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018732};
18733
18734static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018735 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18736 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018737 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18738 msm_routing_get_port_mixer,
18739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018740 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18741 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018742 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18743 msm_routing_get_port_mixer,
18744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018745 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18746 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018747 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18748 msm_routing_get_port_mixer,
18749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018750 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18751 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018752 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18753 msm_routing_get_port_mixer,
18754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018755 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18756 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018757 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18758 msm_routing_get_port_mixer,
18759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018760 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18761 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018762 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18763 msm_routing_get_port_mixer,
18764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018765 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18766 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018767 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18768 msm_routing_get_port_mixer,
18769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018770 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18771 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018772 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18773 msm_routing_get_port_mixer,
18774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018775 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18776 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018777 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18778 msm_routing_get_port_mixer,
18779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018780 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18781 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018782 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18783 msm_routing_get_port_mixer,
18784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018785 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18786 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018787 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18788 msm_routing_get_port_mixer,
18789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018790 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18791 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018792 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18793 msm_routing_get_port_mixer,
18794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018795 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18796 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018797 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18798 msm_routing_get_port_mixer,
18799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018800 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18801 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018802 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18803 msm_routing_get_port_mixer,
18804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018805 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18806 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018807 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18808 msm_routing_get_port_mixer,
18809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018810 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18811 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018812 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18813 msm_routing_get_port_mixer,
18814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018815 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18816 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018817 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18818 msm_routing_get_port_mixer,
18819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018820 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18821 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018822 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18823 msm_routing_get_port_mixer,
18824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018825 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18826 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018827 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18828 msm_routing_get_port_mixer,
18829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018830 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18831 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018832 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18833 msm_routing_get_port_mixer,
18834 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018835 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18836 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
18837 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18838 msm_routing_get_port_mixer,
18839 msm_routing_put_port_mixer),
18840 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18841 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
18842 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18843 msm_routing_get_port_mixer,
18844 msm_routing_put_port_mixer),
18845 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18846 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
18847 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18848 msm_routing_get_port_mixer,
18849 msm_routing_put_port_mixer),
18850 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18851 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
18852 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18853 msm_routing_get_port_mixer,
18854 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053018855};
18856
Derek Chenb9048cb2019-03-07 14:54:13 -050018857static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
18858 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
18859 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
18860 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
18861 msm_routing_get_port_mixer,
18862 msm_routing_put_port_mixer),
18863};
18864
Rohit Kumara5077932017-09-10 22:05:05 +053018865static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018866 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18867 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018868 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18869 msm_routing_get_port_mixer,
18870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018871 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18872 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018873 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18874 msm_routing_get_port_mixer,
18875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018876 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18877 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018878 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
18879 msm_routing_get_port_mixer,
18880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018881 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18882 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018883 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18884 msm_routing_get_port_mixer,
18885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018886 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18887 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018888 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18889 msm_routing_get_port_mixer,
18890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018891 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18892 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018893 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18894 msm_routing_get_port_mixer,
18895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018896 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18897 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018898 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18899 msm_routing_get_port_mixer,
18900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018901 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18902 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018903 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18904 msm_routing_get_port_mixer,
18905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018906 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18907 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018908 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18909 msm_routing_get_port_mixer,
18910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018911 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18912 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018913 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18914 msm_routing_get_port_mixer,
18915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018916 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18917 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018918 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18919 msm_routing_get_port_mixer,
18920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018921 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18922 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018923 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18924 msm_routing_get_port_mixer,
18925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018926 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18927 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018928 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18929 msm_routing_get_port_mixer,
18930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018931 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18932 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018933 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18934 msm_routing_get_port_mixer,
18935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018936 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18937 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018938 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18939 msm_routing_get_port_mixer,
18940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018941 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18942 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018943 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18944 msm_routing_get_port_mixer,
18945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018946 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18947 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018948 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18949 msm_routing_get_port_mixer,
18950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018951 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18952 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018953 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18954 msm_routing_get_port_mixer,
18955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018956 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18957 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018958 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18959 msm_routing_get_port_mixer,
18960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018961 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18962 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018963 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18964 msm_routing_get_port_mixer,
18965 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018966 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18967 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
18968 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18969 msm_routing_get_port_mixer,
18970 msm_routing_put_port_mixer),
18971 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18972 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
18973 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18974 msm_routing_get_port_mixer,
18975 msm_routing_put_port_mixer),
18976 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18977 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
18978 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18979 msm_routing_get_port_mixer,
18980 msm_routing_put_port_mixer),
18981 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18982 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
18983 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18984 msm_routing_get_port_mixer,
18985 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053018986};
18987
18988static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018989 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18990 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018991 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18992 msm_routing_get_port_mixer,
18993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018994 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18995 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018996 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18997 msm_routing_get_port_mixer,
18998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018999 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19000 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019001 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19002 msm_routing_get_port_mixer,
19003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019004 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19005 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019006 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19007 msm_routing_get_port_mixer,
19008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019009 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19010 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019011 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19012 msm_routing_get_port_mixer,
19013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019014 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19015 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019016 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19017 msm_routing_get_port_mixer,
19018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019019 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19020 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019021 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19022 msm_routing_get_port_mixer,
19023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019024 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19025 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019026 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19027 msm_routing_get_port_mixer,
19028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019029 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19030 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019031 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19032 msm_routing_get_port_mixer,
19033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019034 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19035 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019036 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19037 msm_routing_get_port_mixer,
19038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019039 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19040 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019041 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19042 msm_routing_get_port_mixer,
19043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019044 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19045 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019046 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19047 msm_routing_get_port_mixer,
19048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019049 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19050 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019051 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19052 msm_routing_get_port_mixer,
19053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019054 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19055 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019056 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19057 msm_routing_get_port_mixer,
19058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019059 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19060 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019061 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19062 msm_routing_get_port_mixer,
19063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019064 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19065 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019066 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19067 msm_routing_get_port_mixer,
19068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019069 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19070 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019071 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19072 msm_routing_get_port_mixer,
19073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019074 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19075 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019076 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19077 msm_routing_get_port_mixer,
19078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019079 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19080 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019081 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19082 msm_routing_get_port_mixer,
19083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019084 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19085 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019086 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19087 msm_routing_get_port_mixer,
19088 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019089 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19090 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19091 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19092 msm_routing_get_port_mixer,
19093 msm_routing_put_port_mixer),
19094 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19095 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19096 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19097 msm_routing_get_port_mixer,
19098 msm_routing_put_port_mixer),
19099 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19100 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19101 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19102 msm_routing_get_port_mixer,
19103 msm_routing_put_port_mixer),
19104 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19105 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19106 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19107 msm_routing_get_port_mixer,
19108 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019109};
19110
19111static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019112 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19113 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019114 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19115 msm_routing_get_port_mixer,
19116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019117 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19118 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019119 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19120 msm_routing_get_port_mixer,
19121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019122 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19123 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019124 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19125 msm_routing_get_port_mixer,
19126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019127 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19128 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019129 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19130 msm_routing_get_port_mixer,
19131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019132 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19133 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019134 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19135 msm_routing_get_port_mixer,
19136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019137 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19138 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019139 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19140 msm_routing_get_port_mixer,
19141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019142 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19143 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019144 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19145 msm_routing_get_port_mixer,
19146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019147 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19148 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019149 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19150 msm_routing_get_port_mixer,
19151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019152 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19153 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019154 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19155 msm_routing_get_port_mixer,
19156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019157 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19158 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019159 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19160 msm_routing_get_port_mixer,
19161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019162 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19163 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019164 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19165 msm_routing_get_port_mixer,
19166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019167 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19168 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019169 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19170 msm_routing_get_port_mixer,
19171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019172 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19173 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019174 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19175 msm_routing_get_port_mixer,
19176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019177 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19178 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019179 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19180 msm_routing_get_port_mixer,
19181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019182 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19183 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019184 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19185 msm_routing_get_port_mixer,
19186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019187 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19188 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019189 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19190 msm_routing_get_port_mixer,
19191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019192 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19193 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019194 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19195 msm_routing_get_port_mixer,
19196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019197 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19198 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019199 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19200 msm_routing_get_port_mixer,
19201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019202 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19203 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019204 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19205 msm_routing_get_port_mixer,
19206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019207 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19208 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019209 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19210 msm_routing_get_port_mixer,
19211 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019212 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19213 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19214 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19215 msm_routing_get_port_mixer,
19216 msm_routing_put_port_mixer),
19217 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19218 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19219 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19220 msm_routing_get_port_mixer,
19221 msm_routing_put_port_mixer),
19222 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19223 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19224 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19225 msm_routing_get_port_mixer,
19226 msm_routing_put_port_mixer),
19227 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19228 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19229 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19230 msm_routing_get_port_mixer,
19231 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019232};
19233
19234static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019235 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19236 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019237 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19238 msm_routing_get_port_mixer,
19239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019240 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19241 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019242 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19243 msm_routing_get_port_mixer,
19244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019245 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19246 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019247 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19248 msm_routing_get_port_mixer,
19249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019250 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19251 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019252 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19253 msm_routing_get_port_mixer,
19254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019255 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19256 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019257 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19258 msm_routing_get_port_mixer,
19259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019260 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19261 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019262 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19263 msm_routing_get_port_mixer,
19264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019265 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19266 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019267 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19268 msm_routing_get_port_mixer,
19269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019270 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19271 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019272 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19273 msm_routing_get_port_mixer,
19274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019275 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19276 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019277 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19278 msm_routing_get_port_mixer,
19279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019280 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19281 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019282 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19283 msm_routing_get_port_mixer,
19284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019285 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19286 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019287 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19288 msm_routing_get_port_mixer,
19289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019290 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19291 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019292 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19293 msm_routing_get_port_mixer,
19294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019295 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19296 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019297 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19298 msm_routing_get_port_mixer,
19299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019300 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19301 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019302 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19303 msm_routing_get_port_mixer,
19304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019305 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19306 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019307 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19308 msm_routing_get_port_mixer,
19309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019310 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19311 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019312 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19313 msm_routing_get_port_mixer,
19314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019315 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19316 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019317 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19318 msm_routing_get_port_mixer,
19319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019320 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19321 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019322 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19323 msm_routing_get_port_mixer,
19324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019325 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19326 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019327 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19328 msm_routing_get_port_mixer,
19329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019330 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19331 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019332 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19333 msm_routing_get_port_mixer,
19334 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019335 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19336 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19337 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19338 msm_routing_get_port_mixer,
19339 msm_routing_put_port_mixer),
19340 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19341 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19342 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19343 msm_routing_get_port_mixer,
19344 msm_routing_put_port_mixer),
19345 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19346 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19347 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19348 msm_routing_get_port_mixer,
19349 msm_routing_put_port_mixer),
19350 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19351 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19352 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19353 msm_routing_get_port_mixer,
19354 msm_routing_put_port_mixer),
19355};
19356
19357static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
19358 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19359 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19360 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19361 msm_routing_get_port_mixer,
19362 msm_routing_put_port_mixer),
19363 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19364 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19365 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19366 msm_routing_get_port_mixer,
19367 msm_routing_put_port_mixer),
19368 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19369 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19370 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19371 msm_routing_get_port_mixer,
19372 msm_routing_put_port_mixer),
19373 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19374 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19375 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19376 msm_routing_get_port_mixer,
19377 msm_routing_put_port_mixer),
19378 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19379 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19380 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19381 msm_routing_get_port_mixer,
19382 msm_routing_put_port_mixer),
19383 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19384 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19385 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19386 msm_routing_get_port_mixer,
19387 msm_routing_put_port_mixer),
19388 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19389 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19390 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19391 msm_routing_get_port_mixer,
19392 msm_routing_put_port_mixer),
19393 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19394 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19395 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19396 msm_routing_get_port_mixer,
19397 msm_routing_put_port_mixer),
19398 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19399 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19400 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19401 msm_routing_get_port_mixer,
19402 msm_routing_put_port_mixer),
19403 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19404 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19405 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19406 msm_routing_get_port_mixer,
19407 msm_routing_put_port_mixer),
19408 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19409 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19410 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19411 msm_routing_get_port_mixer,
19412 msm_routing_put_port_mixer),
19413 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19414 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19415 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19416 msm_routing_get_port_mixer,
19417 msm_routing_put_port_mixer),
19418 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19419 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19420 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19421 msm_routing_get_port_mixer,
19422 msm_routing_put_port_mixer),
19423 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19424 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19425 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19426 msm_routing_get_port_mixer,
19427 msm_routing_put_port_mixer),
19428 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19429 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19430 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19431 msm_routing_get_port_mixer,
19432 msm_routing_put_port_mixer),
19433 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19434 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19435 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19436 msm_routing_get_port_mixer,
19437 msm_routing_put_port_mixer),
19438 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19439 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19440 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19441 msm_routing_get_port_mixer,
19442 msm_routing_put_port_mixer),
19443 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19444 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19445 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19446 msm_routing_get_port_mixer,
19447 msm_routing_put_port_mixer),
19448 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19449 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19450 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19451 msm_routing_get_port_mixer,
19452 msm_routing_put_port_mixer),
19453 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19454 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19455 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19456 msm_routing_get_port_mixer,
19457 msm_routing_put_port_mixer),
19458 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19459 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19460 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19461 msm_routing_get_port_mixer,
19462 msm_routing_put_port_mixer),
19463 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19464 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19465 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19466 msm_routing_get_port_mixer,
19467 msm_routing_put_port_mixer),
19468 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19469 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19470 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19471 msm_routing_get_port_mixer,
19472 msm_routing_put_port_mixer),
19473 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19474 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19475 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19476 msm_routing_get_port_mixer,
19477 msm_routing_put_port_mixer),
19478};
19479
19480static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
19481 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19482 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19483 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19484 msm_routing_get_port_mixer,
19485 msm_routing_put_port_mixer),
19486 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19487 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19488 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19489 msm_routing_get_port_mixer,
19490 msm_routing_put_port_mixer),
19491 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19492 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19493 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19494 msm_routing_get_port_mixer,
19495 msm_routing_put_port_mixer),
19496 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19497 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19498 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19499 msm_routing_get_port_mixer,
19500 msm_routing_put_port_mixer),
19501 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19502 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19503 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19504 msm_routing_get_port_mixer,
19505 msm_routing_put_port_mixer),
19506 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19507 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19508 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19509 msm_routing_get_port_mixer,
19510 msm_routing_put_port_mixer),
19511 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19512 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19513 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19514 msm_routing_get_port_mixer,
19515 msm_routing_put_port_mixer),
19516 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19517 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19518 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19519 msm_routing_get_port_mixer,
19520 msm_routing_put_port_mixer),
19521 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19522 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19523 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19524 msm_routing_get_port_mixer,
19525 msm_routing_put_port_mixer),
19526 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19527 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19528 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19529 msm_routing_get_port_mixer,
19530 msm_routing_put_port_mixer),
19531 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19532 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19533 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19534 msm_routing_get_port_mixer,
19535 msm_routing_put_port_mixer),
19536 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19537 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19538 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19539 msm_routing_get_port_mixer,
19540 msm_routing_put_port_mixer),
19541 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19542 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19543 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19544 msm_routing_get_port_mixer,
19545 msm_routing_put_port_mixer),
19546 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19547 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19548 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19549 msm_routing_get_port_mixer,
19550 msm_routing_put_port_mixer),
19551 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19552 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19553 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19554 msm_routing_get_port_mixer,
19555 msm_routing_put_port_mixer),
19556 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19557 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19558 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19559 msm_routing_get_port_mixer,
19560 msm_routing_put_port_mixer),
19561 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19562 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19563 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19564 msm_routing_get_port_mixer,
19565 msm_routing_put_port_mixer),
19566 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19567 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19568 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19569 msm_routing_get_port_mixer,
19570 msm_routing_put_port_mixer),
19571 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19572 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19573 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19574 msm_routing_get_port_mixer,
19575 msm_routing_put_port_mixer),
19576 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19577 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19578 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19579 msm_routing_get_port_mixer,
19580 msm_routing_put_port_mixer),
19581 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19582 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19583 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19584 msm_routing_get_port_mixer,
19585 msm_routing_put_port_mixer),
19586 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19587 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19588 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19589 msm_routing_get_port_mixer,
19590 msm_routing_put_port_mixer),
19591 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19592 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19593 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19594 msm_routing_get_port_mixer,
19595 msm_routing_put_port_mixer),
19596 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19597 MSM_BACKEND_DAI_SEN_TDM_RX_1,
19598 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19599 msm_routing_get_port_mixer,
19600 msm_routing_put_port_mixer),
19601};
19602
19603static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
19604 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19605 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19606 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19607 msm_routing_get_port_mixer,
19608 msm_routing_put_port_mixer),
19609 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19610 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19611 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19612 msm_routing_get_port_mixer,
19613 msm_routing_put_port_mixer),
19614 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19615 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19616 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19617 msm_routing_get_port_mixer,
19618 msm_routing_put_port_mixer),
19619 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19620 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19621 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19622 msm_routing_get_port_mixer,
19623 msm_routing_put_port_mixer),
19624 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19625 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19626 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19627 msm_routing_get_port_mixer,
19628 msm_routing_put_port_mixer),
19629 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19630 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19631 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19632 msm_routing_get_port_mixer,
19633 msm_routing_put_port_mixer),
19634 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19635 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19636 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19637 msm_routing_get_port_mixer,
19638 msm_routing_put_port_mixer),
19639 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19640 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19641 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19642 msm_routing_get_port_mixer,
19643 msm_routing_put_port_mixer),
19644 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19645 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19646 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19647 msm_routing_get_port_mixer,
19648 msm_routing_put_port_mixer),
19649 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19650 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19651 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19652 msm_routing_get_port_mixer,
19653 msm_routing_put_port_mixer),
19654 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19655 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19656 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19657 msm_routing_get_port_mixer,
19658 msm_routing_put_port_mixer),
19659 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19660 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19661 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19662 msm_routing_get_port_mixer,
19663 msm_routing_put_port_mixer),
19664 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19665 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19666 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19667 msm_routing_get_port_mixer,
19668 msm_routing_put_port_mixer),
19669 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19670 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19671 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19672 msm_routing_get_port_mixer,
19673 msm_routing_put_port_mixer),
19674 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19675 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19676 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19677 msm_routing_get_port_mixer,
19678 msm_routing_put_port_mixer),
19679 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19680 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19681 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19682 msm_routing_get_port_mixer,
19683 msm_routing_put_port_mixer),
19684 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19685 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19686 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19687 msm_routing_get_port_mixer,
19688 msm_routing_put_port_mixer),
19689 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19690 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19691 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19692 msm_routing_get_port_mixer,
19693 msm_routing_put_port_mixer),
19694 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19695 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19696 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19697 msm_routing_get_port_mixer,
19698 msm_routing_put_port_mixer),
19699 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19700 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19701 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19702 msm_routing_get_port_mixer,
19703 msm_routing_put_port_mixer),
19704 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19705 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19706 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19707 msm_routing_get_port_mixer,
19708 msm_routing_put_port_mixer),
19709 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19710 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19711 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19712 msm_routing_get_port_mixer,
19713 msm_routing_put_port_mixer),
19714 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19715 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19716 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19717 msm_routing_get_port_mixer,
19718 msm_routing_put_port_mixer),
19719 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19720 MSM_BACKEND_DAI_SEN_TDM_RX_2,
19721 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19722 msm_routing_get_port_mixer,
19723 msm_routing_put_port_mixer),
19724};
19725
19726static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
19727 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19728 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19729 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19730 msm_routing_get_port_mixer,
19731 msm_routing_put_port_mixer),
19732 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19733 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19734 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19735 msm_routing_get_port_mixer,
19736 msm_routing_put_port_mixer),
19737 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19738 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19739 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19740 msm_routing_get_port_mixer,
19741 msm_routing_put_port_mixer),
19742 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19743 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19744 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19745 msm_routing_get_port_mixer,
19746 msm_routing_put_port_mixer),
19747 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19748 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19749 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19750 msm_routing_get_port_mixer,
19751 msm_routing_put_port_mixer),
19752 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19753 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19754 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19755 msm_routing_get_port_mixer,
19756 msm_routing_put_port_mixer),
19757 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19758 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19759 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19760 msm_routing_get_port_mixer,
19761 msm_routing_put_port_mixer),
19762 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19763 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19764 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19765 msm_routing_get_port_mixer,
19766 msm_routing_put_port_mixer),
19767 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19768 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19769 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19770 msm_routing_get_port_mixer,
19771 msm_routing_put_port_mixer),
19772 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19773 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19774 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19775 msm_routing_get_port_mixer,
19776 msm_routing_put_port_mixer),
19777 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19778 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19779 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19780 msm_routing_get_port_mixer,
19781 msm_routing_put_port_mixer),
19782 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19783 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19784 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19785 msm_routing_get_port_mixer,
19786 msm_routing_put_port_mixer),
19787 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19788 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19789 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19790 msm_routing_get_port_mixer,
19791 msm_routing_put_port_mixer),
19792 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19793 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19794 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19795 msm_routing_get_port_mixer,
19796 msm_routing_put_port_mixer),
19797 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19798 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19799 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19800 msm_routing_get_port_mixer,
19801 msm_routing_put_port_mixer),
19802 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19803 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19804 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19805 msm_routing_get_port_mixer,
19806 msm_routing_put_port_mixer),
19807 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19808 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19809 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19810 msm_routing_get_port_mixer,
19811 msm_routing_put_port_mixer),
19812 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19813 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19814 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19815 msm_routing_get_port_mixer,
19816 msm_routing_put_port_mixer),
19817 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19818 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19819 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19820 msm_routing_get_port_mixer,
19821 msm_routing_put_port_mixer),
19822 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19823 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19824 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19825 msm_routing_get_port_mixer,
19826 msm_routing_put_port_mixer),
19827 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19828 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19829 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19830 msm_routing_get_port_mixer,
19831 msm_routing_put_port_mixer),
19832 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19833 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19834 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19835 msm_routing_get_port_mixer,
19836 msm_routing_put_port_mixer),
19837 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19838 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19839 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19840 msm_routing_get_port_mixer,
19841 msm_routing_put_port_mixer),
19842 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19843 MSM_BACKEND_DAI_SEN_TDM_RX_3,
19844 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19845 msm_routing_get_port_mixer,
19846 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019847};
19848
19849static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019850 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19851 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019852 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019854 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19855 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019856 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019858 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
19859 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019860 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
19861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019862 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19863 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019864 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019866 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
19867 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053019868 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19869 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019870 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
19871 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
19872 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019874 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19875 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019876 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019878 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
19879 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019880 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
19881 msm_routing_put_port_mixer),
19882};
19883
19884static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019885 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19886 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019887 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019889 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19890 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019891 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019893 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19894 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019895 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019897 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19898 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019899 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019901 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
19902 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053019903 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19904 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019905 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
19906 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
19907 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
19908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019909 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
19910 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019911 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
19912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019913 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19914 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019915 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
19916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019917 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
19918 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019919 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
19920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019921 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19922 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019923 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
19924 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019925};
19926
19927static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019928 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19929 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019930 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19931 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019932 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
19933 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019934 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19935 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019936 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19937 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019938 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19939 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019940 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19941 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019942 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19943 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019944 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
19945 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019946 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19947 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019948 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19949 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019950 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19951 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019952 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19953 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019954 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19955 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019956 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
19957 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019958 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19959 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053019960 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
19961 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
19962 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19963 msm_routing_put_listen_mixer),
19964 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
19965 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
19966 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19967 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019968 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
19969 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
19970 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19971 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053019972 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
19973 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
19974 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19975 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053019976 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19977 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
19978 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
19979 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019980};
19981
19982static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019983 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
19984 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019985 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19986 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019987 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
19988 SND_SOC_NOPM,
19989 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019990 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19991 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019992 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
19993 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019994 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19995 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019996 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
19997 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019998 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
19999 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020000 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20001 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020002 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20003 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020004 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20005 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020006 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20007 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020008 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20009 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020010 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20011 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020012 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20013 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020014 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20015 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020016 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20017 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20018 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20019 msm_routing_put_listen_mixer),
20020 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20021 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20022 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20023 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020024 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20025 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20026 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20027 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020028 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20029 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20030 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20031 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020032 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20033 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20034 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20035 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020036};
20037
20038static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020039 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20040 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020041 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20042 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020043 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20044 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020045 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20046 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020047 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20048 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020049 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20050 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020051 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20052 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020053 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20054 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020055 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20056 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020057 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20058 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020059 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20060 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020061 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20062 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020063 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20064 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020065 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20066 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020067 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20068 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020069 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20070 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020071 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20072 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20073 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20074 msm_routing_put_listen_mixer),
20075 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20076 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20077 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20078 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020079 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20080 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20081 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20082 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020083 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20084 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20085 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20086 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020087 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20088 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20089 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20090 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020091};
20092
20093static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020094 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20095 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020096 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20097 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020098 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20099 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020100 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20101 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020102 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20103 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020104 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20105 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020106 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20107 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020108 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20109 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020110 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20111 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020112 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20113 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020114 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20115 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020116 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20117 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020118 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20119 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020120 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20121 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020122 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20123 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020124 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20125 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020126 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20127 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20128 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20129 msm_routing_put_listen_mixer),
20130 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20131 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20132 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20133 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020134 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20135 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20136 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20137 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020138 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20139 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20140 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20141 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020142 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20143 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20144 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20145 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020146};
20147
20148static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020149 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20150 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020151 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20152 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020153 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20154 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020155 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20156 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020157 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20158 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020159 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20160 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020161 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20162 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020163 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20164 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020165 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20166 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020167 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20168 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020169 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20170 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020171 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20172 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020173 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20174 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020175 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20176 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020177 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20178 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020179 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20180 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020181 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20182 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20183 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20184 msm_routing_put_listen_mixer),
20185 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20186 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20187 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20188 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020189 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20190 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20191 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20192 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020193 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20194 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20195 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20196 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020197 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20198 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20199 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20200 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020201};
20202
20203static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020204 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20205 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020206 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20207 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020208 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20209 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020210 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20211 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020212 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20213 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020214 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20215 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020216 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20217 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020218 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20219 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020220 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20221 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020222 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20223 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020224 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20225 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020226 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20227 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020228 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20229 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020230 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20231 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020232 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20233 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020234 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20235 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020236 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20237 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20238 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20239 msm_routing_put_listen_mixer),
20240 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20241 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20242 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20243 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020244 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20245 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20246 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20247 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20250 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20251 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020252 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20253 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20254 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20255 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020256};
20257
20258static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020259 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20260 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020261 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20262 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020263 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20264 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020265 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20266 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020267 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20268 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020269 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20270 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020271 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20272 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020273 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20274 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020275 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20276 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020277 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20278 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020279 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20280 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020281 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20282 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020283 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20284 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020285 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20286 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020287 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20288 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020289 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20290 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020291 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20292 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20293 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20294 msm_routing_put_listen_mixer),
20295 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20296 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20297 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20298 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020299 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20300 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20301 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20302 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020303 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20304 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20305 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20306 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020307 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20308 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20309 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20310 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020311};
20312
20313static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020314 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20315 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020316 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20317 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020318 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20319 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020320 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20321 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020322 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20323 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020324 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20325 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020326 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20327 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020328 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20329 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020330 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20331 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020332 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20333 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020334 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20335 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020336 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20337 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020338 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20339 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020340 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20341 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020342 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20343 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020344 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20345 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020346 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20347 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20348 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20349 msm_routing_put_listen_mixer),
20350 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20351 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20352 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20353 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020354 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20355 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20356 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20357 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020358 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20359 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20360 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20361 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020362 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20363 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20364 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20365 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020366};
20367
20368static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
20369 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20370 0, 1, 0, msm_routing_get_switch_mixer,
20371 msm_routing_put_switch_mixer);
20372
20373static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
20374 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20375 0, 1, 0, msm_routing_get_switch_mixer,
20376 msm_routing_put_switch_mixer);
20377
20378static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
20379 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20380 0, 1, 0, msm_routing_get_switch_mixer,
20381 msm_routing_put_switch_mixer);
20382
20383static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
20384 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20385 0, 1, 0, msm_routing_get_switch_mixer,
20386 msm_routing_put_switch_mixer);
20387
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053020388static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
20389 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20390 0, 1, 0, msm_routing_get_switch_mixer,
20391 msm_routing_put_switch_mixer);
20392
20393static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053020394 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20395 0, 1, 0, msm_routing_get_switch_mixer,
20396 msm_routing_put_switch_mixer);
20397
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020398static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
20399 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20400 0, 1, 0, msm_routing_get_switch_mixer,
20401 msm_routing_put_switch_mixer);
20402
20403static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
20404 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20405 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
20406 msm_routing_put_fm_pcmrx_switch_mixer);
20407
20408static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
20409 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20410 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
20411 msm_routing_put_int0_mi2s_switch_mixer);
20412
20413static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
20414 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20415 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
20416 msm_routing_put_int4_mi2s_switch_mixer);
20417
20418static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
20419 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20420 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
20421 msm_routing_put_pri_mi2s_switch_mixer);
20422
20423static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
20424 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20425 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
20426 msm_routing_put_sec_mi2s_switch_mixer);
20427
20428static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
20429 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20430 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
20431 msm_routing_put_tert_mi2s_switch_mixer);
20432
20433static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
20434 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20435 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
20436 msm_routing_put_quat_mi2s_switch_mixer);
20437
Rohit Kumara5077932017-09-10 22:05:05 +053020438static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
20439 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20440 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
20441 msm_routing_put_quin_mi2s_switch_mixer);
20442
Karthikeyan Manic3700752019-03-11 18:33:53 -070020443static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
20444 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20445 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
20446 msm_routing_put_sen_mi2s_switch_mixer);
20447
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020448static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
20449 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20450 0, 1, 0, msm_routing_get_hfp_switch_mixer,
20451 msm_routing_put_hfp_switch_mixer);
20452
20453static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
20454 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20455 0, 1, 0, msm_routing_get_hfp_switch_mixer,
20456 msm_routing_put_hfp_switch_mixer);
20457
20458static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
20459 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20460 0, 1, 0, msm_routing_get_hfp_switch_mixer,
20461 msm_routing_put_hfp_switch_mixer);
20462
20463static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
20464 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20465 0, 1, 0, msm_routing_get_hfp_switch_mixer,
20466 msm_routing_put_hfp_switch_mixer);
20467
20468static const struct snd_kcontrol_new usb_switch_mixer_controls =
20469 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20470 0, 1, 0, msm_routing_get_usb_switch_mixer,
20471 msm_routing_put_usb_switch_mixer);
20472
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080020473static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
20474 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20475 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
20476 msm_routing_a2dp_switch_mixer_put);
20477
Zhou Songcaa541d2019-02-19 18:37:47 +080020478static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
20479 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20480 0, 1, 0, msm_routing_sco_switch_mixer_get,
20481 msm_routing_sco_switch_mixer_put);
20482
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020483static const struct soc_enum lsm_port_enum =
20484 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
20485
20486static const char * const lsm_func_text[] = {
20487 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
20488};
20489static const struct soc_enum lsm_func_enum =
20490 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
20491
20492static const struct snd_kcontrol_new lsm_controls[] = {
20493 /* kcontrol of lsm_function */
20494 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20495 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20496 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20497 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20498 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20499 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20500 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20501 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20502 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20503 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20504 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20505 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20506 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20507 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20508 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20509 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
20510 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20511 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020512 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20513 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020514 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
20515 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020516 /* kcontrol of lsm_port */
20517 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
20518 msm_routing_lsm_port_get,
20519 msm_routing_lsm_port_put),
20520 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
20521 msm_routing_lsm_port_get,
20522 msm_routing_lsm_port_put),
20523 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
20524 msm_routing_lsm_port_get,
20525 msm_routing_lsm_port_put),
20526 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
20527 msm_routing_lsm_port_get,
20528 msm_routing_lsm_port_put),
20529 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
20530 msm_routing_lsm_port_get,
20531 msm_routing_lsm_port_put),
20532 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
20533 msm_routing_lsm_port_get,
20534 msm_routing_lsm_port_put),
20535 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
20536 msm_routing_lsm_port_get,
20537 msm_routing_lsm_port_put),
20538 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
20539 msm_routing_lsm_port_get,
20540 msm_routing_lsm_port_put),
20541};
20542
20543static const char * const aanc_slim_0_rx_text[] = {
20544 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
20545 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
20546};
20547
20548static const struct soc_enum aanc_slim_0_rx_enum =
20549 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
20550 aanc_slim_0_rx_text);
20551
20552static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
20553 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
20554 msm_routing_slim_0_rx_aanc_mux_get,
20555 msm_routing_slim_0_rx_aanc_mux_put)
20556};
20557
Sudheer Papothic07b37a2018-05-04 05:56:47 +053020558static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
20559 struct snd_ctl_elem_value *ucontrol)
20560{
20561 ucontrol->value.integer.value[0] = aanc_level;
20562
20563 return 0;
20564}
20565
20566static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
20567 struct snd_ctl_elem_value *ucontrol)
20568{
20569 int ret = 0;
20570
20571 mutex_lock(&routing_lock);
20572 aanc_level = ucontrol->value.integer.value[0];
20573 pr_debug("%s: value: %ld\n",
20574 __func__, ucontrol->value.integer.value[0]);
20575 ret = afe_set_aanc_noise_level(aanc_level);
20576 mutex_unlock(&routing_lock);
20577
20578 return ret;
20579}
20580
20581static const struct snd_kcontrol_new aanc_noise_level[] = {
20582 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
20583 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
20584};
20585
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020586static int msm_routing_get_stereo_to_custom_stereo_control(
20587 struct snd_kcontrol *kcontrol,
20588 struct snd_ctl_elem_value *ucontrol)
20589{
20590 ucontrol->value.integer.value[0] = is_custom_stereo_on;
20591 return 0;
20592}
20593
20594static int msm_routing_put_stereo_to_custom_stereo_control(
20595 struct snd_kcontrol *kcontrol,
20596 struct snd_ctl_elem_value *ucontrol)
20597{
20598 int flag = 0, i = 0, rc = 0, idx = 0;
20599 int be_index = 0, port_id, topo_id;
20600 unsigned int session_id = 0;
20601 uint16_t op_FL_ip_FL_weight = 0;
20602 uint16_t op_FL_ip_FR_weight = 0;
20603 uint16_t op_FR_ip_FL_weight = 0;
20604 uint16_t op_FR_ip_FR_weight = 0;
20605
20606 flag = ucontrol->value.integer.value[0];
20607 pr_debug("%s E flag %d\n", __func__, flag);
20608
20609 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
20610 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
20611 __func__, is_custom_stereo_on, flag);
20612 return 0;
20613 }
20614 is_custom_stereo_on = flag ? true : false;
20615 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
20616 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
20617 port_id = msm_bedais[be_index].port_id;
20618 if (!msm_bedais[be_index].active)
20619 continue;
20620 if ((port_id != SLIMBUS_0_RX) &&
20621 (port_id != RT_PROXY_PORT_001_RX) &&
20622 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
20623 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
20624 continue;
20625
20626 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
20627 MSM_FRONTEND_DAI_MM_SIZE) {
20628 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
20629 LEGACY_PCM_MODE)
20630 goto skip_send_custom_stereo;
20631 session_id =
20632 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
20633 if (is_custom_stereo_on) {
20634 op_FL_ip_FL_weight =
20635 Q14_GAIN_ZERO_POINT_FIVE;
20636 op_FL_ip_FR_weight =
20637 Q14_GAIN_ZERO_POINT_FIVE;
20638 op_FR_ip_FL_weight =
20639 Q14_GAIN_ZERO_POINT_FIVE;
20640 op_FR_ip_FR_weight =
20641 Q14_GAIN_ZERO_POINT_FIVE;
20642 } else {
20643 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
20644 op_FL_ip_FR_weight = 0;
20645 op_FR_ip_FL_weight = 0;
20646 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
20647 }
20648 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
20649 unsigned long copp =
20650 session_copp_map[i]
20651 [SESSION_TYPE_RX][be_index];
20652 if (!test_bit(idx, &copp))
20653 goto skip_send_custom_stereo;
20654 topo_id = adm_get_topology_for_port_copp_idx(
20655 msm_bedais[be_index].port_id, idx);
20656 if (topo_id < 0)
20657 pr_debug("%s:Err:custom stereo topo %d",
20658 __func__, topo_id);
20659 pr_debug("idx %d\n", idx);
20660 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
20661 rc = msm_ds2_dap_set_custom_stereo_onoff
20662 (msm_bedais[be_index].port_id,
20663 idx, is_custom_stereo_on);
20664 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
20665 rc = dolby_dap_set_custom_stereo_onoff(
20666 msm_bedais[be_index].port_id,
20667 idx, is_custom_stereo_on);
20668 else
20669 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
20670 (msm_bedais[be_index].port_id,
20671 idx, session_id,
20672 op_FL_ip_FL_weight,
20673 op_FL_ip_FR_weight,
20674 op_FR_ip_FL_weight,
20675 op_FR_ip_FR_weight);
20676 if (rc < 0)
20677skip_send_custom_stereo:
20678 pr_err("%s: err setting custom stereo\n",
20679 __func__);
20680 }
20681
20682 }
20683 }
20684 return 0;
20685}
20686
20687static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
20688 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
20689 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
20690 msm_routing_put_stereo_to_custom_stereo_control),
20691};
20692
20693static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
20694 struct snd_ctl_elem_value *ucontrol)
20695{
20696 return 0;
20697}
20698
20699static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
20700 struct snd_ctl_elem_value *ucontrol)
20701{
20702 int i = 0, j;
20703 int num_app_types = ucontrol->value.integer.value[i++];
20704
20705 pr_debug("%s\n", __func__);
20706
20707 memset(app_type_cfg, 0, MAX_APP_TYPES*
20708 sizeof(struct msm_pcm_routing_app_type_data));
20709 if (num_app_types > MAX_APP_TYPES) {
20710 pr_err("%s: number of app types exceed the max supported\n",
20711 __func__);
20712 return -EINVAL;
20713 }
20714 for (j = 0; j < num_app_types; j++) {
20715 app_type_cfg[j].app_type =
20716 ucontrol->value.integer.value[i++];
20717 app_type_cfg[j].sample_rate =
20718 ucontrol->value.integer.value[i++];
20719 app_type_cfg[j].bit_width =
20720 ucontrol->value.integer.value[i++];
20721 }
20722
20723 return 0;
20724}
20725
20726static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
20727 struct snd_ctl_elem_value *ucontrol)
20728{
20729 int j, fe_id, be_id, port_type;
20730 int ret = 0;
20731 unsigned long copp;
20732 struct msm_pcm_routing_bdai_data *bedai;
20733 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
20734 SESSION_TYPE_RX;
20735 int app_type = ucontrol->value.integer.value[1];
20736 int gain = (ucontrol->value.integer.value[2] +
20737 ucontrol->value.integer.value[3])/2;
20738
20739 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
20740 MSM_AFE_PORT_TYPE_TX;
20741
20742 mutex_lock(&routing_lock);
20743 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
20744 if (is_be_dai_extproc(be_id))
20745 continue;
20746
20747 bedai = &msm_bedais[be_id];
20748 if (afe_get_port_type(bedai->port_id) != port_type)
20749 continue;
20750
20751 if (!bedai->active)
20752 continue;
20753
20754 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
20755 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
20756 continue;
20757
20758 if (app_type !=
20759 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
20760 continue;
20761
20762 copp = session_copp_map[fe_id][dir][be_id];
20763 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
20764 if (!test_bit(j, &copp))
20765 continue;
20766 ret |= adm_set_volume(bedai->port_id, j, gain);
20767 }
20768 }
20769 }
20770 mutex_unlock(&routing_lock);
20771 return ret ? -EINVAL : 0;
20772}
20773
20774static const struct snd_kcontrol_new app_type_cfg_controls[] = {
20775 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080020776 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020777 msm_routing_put_app_type_cfg_control),
20778 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
20779 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
20780};
20781
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020782static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
20783 struct snd_ctl_elem_value *ucontrol)
20784{
20785 int copp_idx, fe_id, be_id, port_type;
20786 int ret = 0;
20787 unsigned long copp;
20788 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020789 u8 *packed_params = NULL;
20790 struct param_hdr_v3 param_hdr;
20791 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
20792 sizeof(uint32_t));
20793
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020794 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
20795 SESSION_TYPE_RX;
20796 int app_type = ucontrol->value.integer.value[1];
20797 int module_id = ucontrol->value.integer.value[2];
20798 int instance_id = ucontrol->value.integer.value[3];
20799 int param_id = ucontrol->value.integer.value[4];
20800 int param_value = ucontrol->value.integer.value[5];
20801
20802 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
20803 MSM_AFE_PORT_TYPE_TX;
20804 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
20805 __func__, app_type, module_id,
20806 instance_id, param_id, param_value);
20807
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020808 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
20809 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020810 return -ENOMEM;
20811
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020812 memset(&param_hdr, 0, sizeof(param_hdr));
20813 param_hdr.module_id = module_id;
20814 param_hdr.instance_id = instance_id;
20815 param_hdr.param_id = param_id;
20816 param_hdr.param_size = sizeof(uint32_t);
20817
20818 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020819
20820 mutex_lock(&routing_lock);
20821 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
20822 if (is_be_dai_extproc(be_id))
20823 continue;
20824
20825 bedai = &msm_bedais[be_id];
20826 if (afe_get_port_type(bedai->port_id) != port_type)
20827 continue;
20828
20829 if (!bedai->active)
20830 continue;
20831
20832 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
20833 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
20834 continue;
20835
20836 if (app_type !=
20837 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
20838 continue;
20839
20840 copp = session_copp_map[fe_id][dir][be_id];
20841 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
20842 copp_idx++) {
20843 if (!test_bit(copp_idx, &copp))
20844 continue;
20845
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020846 ret = q6common_pack_pp_params(packed_params,
20847 &param_hdr,
20848 (u8 *) &param_value,
20849 &packed_param_size);
20850 if (ret) {
20851 pr_err("%s: Failed to pack params, error %d\n",
20852 __func__, ret);
20853 goto done;
20854 }
20855
20856 ret = adm_set_pp_params(bedai->port_id,
20857 copp_idx, NULL,
20858 packed_params,
20859 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020860 if (ret) {
20861 pr_err("%s: Setting param failed with err=%d\n",
20862 __func__, ret);
20863 ret = -EINVAL;
20864 goto done;
20865 }
20866 }
20867 }
20868 }
20869done:
20870 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020871 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070020872 return ret;
20873}
20874
20875static const struct snd_kcontrol_new module_cfg_controls[] = {
20876 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
20877 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
20878};
20879
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020880static int msm_routing_get_lsm_app_type_cfg_control(
20881 struct snd_kcontrol *kcontrol,
20882 struct snd_ctl_elem_value *ucontrol)
20883{
Meng Wangadbca4f2018-10-29 14:30:13 +080020884 int shift = ((struct soc_multi_mixer_control *)
20885 kcontrol->private_value)->shift;
20886 int i = 0, j = 0;
20887
20888 ucontrol->value.integer.value[i] = num_app_cfg_types;
20889
20890 for (j = 0; j < num_app_cfg_types; ++j) {
20891 ucontrol->value.integer.value[++i] =
20892 lsm_app_type_cfg[j].app_type;
20893 ucontrol->value.integer.value[++i] =
20894 lsm_app_type_cfg[j].sample_rate;
20895 ucontrol->value.integer.value[++i] =
20896 lsm_app_type_cfg[j].bit_width;
20897 if (shift == 1)
20898 ucontrol->value.integer.value[++i] =
20899 lsm_app_type_cfg[j].num_out_channels;
20900 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020901 return 0;
20902}
20903
20904static int msm_routing_put_lsm_app_type_cfg_control(
20905 struct snd_kcontrol *kcontrol,
20906 struct snd_ctl_elem_value *ucontrol)
20907{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020908 int shift = ((struct soc_multi_mixer_control *)
20909 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020910 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020911
Meng Wangadbca4f2018-10-29 14:30:13 +080020912 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020913 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020914 sizeof(struct msm_pcm_routing_app_type_data));
20915
Meng Wangadbca4f2018-10-29 14:30:13 +080020916 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020917 pr_err("%s: number of app types exceed the max supported\n",
20918 __func__);
20919 return -EINVAL;
20920 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020921
Meng Wangadbca4f2018-10-29 14:30:13 +080020922 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020923 lsm_app_type_cfg[j].app_type =
20924 ucontrol->value.integer.value[i++];
20925 lsm_app_type_cfg[j].sample_rate =
20926 ucontrol->value.integer.value[i++];
20927 lsm_app_type_cfg[j].bit_width =
20928 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020929 /* Shift of 1 indicates this is V2 mixer control */
20930 if (shift == 1)
20931 lsm_app_type_cfg[j].num_out_channels =
20932 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020933 }
20934
20935 return 0;
20936}
20937
20938static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
20939 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
20940 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
20941 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070020942 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
20943 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
20944 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020945};
20946
20947static int msm_routing_get_use_ds1_or_ds2_control(
20948 struct snd_kcontrol *kcontrol,
20949 struct snd_ctl_elem_value *ucontrol)
20950{
20951 ucontrol->value.integer.value[0] = is_ds2_on;
20952 return 0;
20953}
20954
20955static int msm_routing_put_use_ds1_or_ds2_control(
20956 struct snd_kcontrol *kcontrol,
20957 struct snd_ctl_elem_value *ucontrol)
20958{
20959 is_ds2_on = ucontrol->value.integer.value[0];
20960 return 0;
20961}
20962
20963static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
20964 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
20965 1, 0, msm_routing_get_use_ds1_or_ds2_control,
20966 msm_routing_put_use_ds1_or_ds2_control),
20967};
20968
20969int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
20970 struct snd_ctl_elem_value *ucontrol) {
20971 int rc = 0;
20972 int be_idx = 0;
20973 char *param_value;
20974 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020975 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
20976 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020977
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020978 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020979 if (!param_value)
20980 return -ENOMEM;
20981
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020982 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020983 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
20984 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
20985 break;
20986 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080020987 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
20988 param_hdr.instance_id = INSTANCE_ID_0;
20989 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
20990 param_hdr.param_size = param_size;
20991 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
20992 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020993 if (rc) {
20994 pr_err("%s: get parameters failed:%d\n", __func__, rc);
20995 kfree(param_value);
20996 return -EINVAL;
20997 }
20998 update_param_value = (int *)param_value;
20999 ucontrol->value.integer.value[0] = update_param_value[0];
21000
21001 pr_debug("%s: FROM DSP value[0] 0x%x\n",
21002 __func__, update_param_value[0]);
21003 }
21004 kfree(param_value);
21005 return 0;
21006}
21007
21008static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
21009 struct snd_ctl_elem_value *ucontrol)
21010{
21011 voc_session_id = ucontrol->value.integer.value[0];
21012
21013 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
21014
21015 return 0;
21016}
21017
21018static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
21019 struct snd_ctl_elem_value *ucontrol)
21020{
21021 ucontrol->value.integer.value[0] = voc_session_id;
21022
21023 return 0;
21024}
21025
21026static struct snd_kcontrol_new msm_voc_session_controls[] = {
21027 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
21028 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
21029 msm_voc_session_id_put),
21030};
21031
21032static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
21033 struct snd_ctl_elem_info *uinfo)
21034{
21035 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21036 uinfo->count = sizeof(struct sound_focus_param);
21037
21038 return 0;
21039}
21040
21041static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
21042 struct snd_ctl_elem_value *ucontrol)
21043{
21044 int ret = 0;
21045 struct sound_focus_param soundFocusData;
21046
21047 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21048 sizeof(struct sound_focus_param));
21049 ret = voc_set_sound_focus(soundFocusData);
21050 if (ret) {
21051 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21052 __func__, ret);
21053
21054 ret = -EINVAL;
21055 }
21056
21057 return ret;
21058}
21059
21060static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
21061 struct snd_ctl_elem_value *ucontrol)
21062{
21063 int ret = 0;
21064 struct sound_focus_param soundFocusData;
21065
21066 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
21067
21068 ret = voc_get_sound_focus(&soundFocusData);
21069 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021070 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021071 __func__, ret);
21072
21073 ret = -EINVAL;
21074 goto done;
21075 }
21076 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21077 sizeof(struct sound_focus_param));
21078
21079done:
21080 return ret;
21081}
21082
21083static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
21084 struct snd_ctl_elem_info *uinfo)
21085{
21086 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21087 uinfo->count = sizeof(struct source_tracking_param);
21088
21089 return 0;
21090}
21091
21092static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
21093 struct snd_ctl_elem_value *ucontrol)
21094{
Meng Wang92edfde2018-04-24 12:18:37 +080021095 int ret = 0;
21096 struct source_tracking_param sourceTrackingData;
21097
21098 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
21099
21100 ret = voc_get_source_tracking(&sourceTrackingData);
21101 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021102 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080021103 __func__, ret);
21104
21105 ret = -EINVAL;
21106 goto done;
21107 }
21108 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21109 sizeof(struct source_tracking_param));
21110
21111done:
21112 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021113}
21114
21115static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
21116 int *copp_idx)
21117{
21118 int i, idx, be_idx;
21119 int ret = 0;
21120 unsigned long copp;
21121
21122 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
21123
21124 ret = q6audio_validate_port(port_id);
21125 if (ret < 0) {
21126 pr_err("%s: port validation failed id 0x%x ret %d\n",
21127 __func__, port_id, ret);
21128
21129 ret = -EINVAL;
21130 goto done;
21131 }
21132
21133 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
21134 if (msm_bedais[be_idx].port_id == port_id)
21135 break;
21136 }
21137 if (be_idx >= MSM_BACKEND_DAI_MAX) {
21138 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
21139
21140 ret = -EINVAL;
21141 goto done;
21142 }
21143
21144 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021145 MSM_FRONTEND_DAI_MAX) {
21146 if (!(is_mm_lsm_fe_id(i) &&
21147 route_check_fe_id_adm_support(i)))
21148 continue;
21149
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021150 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21151 copp = session_copp_map[i]
21152 [session_type][be_idx];
21153 if (test_bit(idx, &copp))
21154 break;
21155 }
21156 if (idx >= MAX_COPPS_PER_PORT)
21157 continue;
21158 else
21159 break;
21160 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021161 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021162 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021163
21164 ret = -EINVAL;
21165 goto done;
21166 }
21167 *copp_idx = idx;
21168 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
21169
21170done:
21171 return ret;
21172}
21173
21174static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
21175 const char *prefix, int *port_id)
21176{
21177 int ret = 0;
21178
21179 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
21180
21181 /*
21182 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
21183 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
21184 * and compare the string with the backend name to derive the port id.
21185 */
21186 if (!strcmp(kcontrol->id.name + strlen(prefix),
21187 "SLIMBUS_0")) {
21188 *port_id = SLIMBUS_0_TX;
21189 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21190 "TERT_MI2S")) {
21191 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
21192 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21193 "INT3_MI2S")) {
21194 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053021195 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21196 "VA_CDC_DMA_TX_0")) {
21197 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053021198 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21199 "TX_CDC_DMA_TX_3")) {
21200 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021201 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21202 "QUIN_TDM_TX_0")) {
21203 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053021204 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21205 "PRIMARY_TDM")) {
21206 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021207 } else {
21208 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
21209 __func__, kcontrol->id.name);
21210
21211 ret = -EINVAL;
21212 goto done;
21213 }
21214 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
21215 __func__, kcontrol->id.name, *port_id);
21216
21217done:
21218 return ret;
21219}
21220
21221static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
21222 struct snd_ctl_elem_value *ucontrol)
21223{
21224 int ret = 0;
21225 struct sound_focus_param soundFocusData;
21226 int port_id, copp_idx;
21227
21228 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21229 "Sound Focus Audio Tx ", &port_id);
21230 if (ret != 0) {
21231 pr_err("%s: Error in deriving port id, err=%d\n",
21232 __func__, ret);
21233
21234 ret = -EINVAL;
21235 goto done;
21236 }
21237
21238 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21239 &copp_idx);
21240 if (ret) {
21241 pr_err("%s: Could not get copp idx for port_id=%d\n",
21242 __func__, port_id);
21243
21244 ret = -EINVAL;
21245 goto done;
21246 }
21247
21248 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21249 sizeof(struct sound_focus_param));
21250
21251 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
21252 if (ret) {
21253 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21254 __func__, ret);
21255
21256 ret = -EINVAL;
21257 goto done;
21258 }
21259
21260done:
21261 return ret;
21262}
21263
21264static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
21265 struct snd_ctl_elem_value *ucontrol)
21266{
21267 int ret = 0;
21268 struct sound_focus_param soundFocusData;
21269 int port_id, copp_idx;
21270
21271 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21272 "Sound Focus Audio Tx ", &port_id);
21273 if (ret) {
21274 pr_err("%s: Error in deriving port id, err=%d\n",
21275 __func__, ret);
21276
21277 ret = -EINVAL;
21278 goto done;
21279 }
21280
21281 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21282 &copp_idx);
21283 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021284 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021285 __func__, port_id);
21286
21287 ret = -EINVAL;
21288 goto done;
21289 }
21290
21291 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
21292 if (ret) {
21293 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
21294 __func__, ret);
21295
21296 ret = -EINVAL;
21297 goto done;
21298 }
21299
21300 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21301 sizeof(struct sound_focus_param));
21302
21303done:
21304 return ret;
21305}
21306
21307static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
21308 struct snd_ctl_elem_value *ucontrol)
21309{
21310 int ret = 0;
21311 struct source_tracking_param sourceTrackingData;
21312 int port_id, copp_idx;
21313
21314 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21315 "Source Tracking Audio Tx ", &port_id);
21316 if (ret) {
21317 pr_err("%s: Error in deriving port id, err=%d\n",
21318 __func__, ret);
21319
21320 ret = -EINVAL;
21321 goto done;
21322 }
21323
21324 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21325 &copp_idx);
21326 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021327 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021328 __func__, port_id);
21329
21330 ret = -EINVAL;
21331 goto done;
21332 }
21333
21334 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
21335 if (ret) {
21336 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
21337 __func__, ret);
21338
21339 ret = -EINVAL;
21340 goto done;
21341 }
21342
21343 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21344 sizeof(struct source_tracking_param));
21345
21346done:
21347 return ret;
21348}
21349
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021350static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
21351 struct snd_ctl_elem_info *uinfo)
21352{
21353 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21354 uinfo->count = sizeof(struct doa_tracking_mon_param);
21355
21356 return 0;
21357}
21358
21359static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
21360 struct snd_ctl_elem_value *ucontrol)
21361{
21362 int ret = 0;
21363 struct doa_tracking_mon_param doa_tracking_data;
21364 int port_id, copp_idx;
21365
21366 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
21367 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21368 "Doa Tracking Monitor Listen ", &port_id);
21369 if (ret) {
21370 pr_err("%s: Error in deriving port id, err=%d\n",
21371 __func__, ret);
21372 ret = -EINVAL;
21373 goto done;
21374 }
21375
21376 /*
21377 * If copp id exists for given port id, query adm to get doa data.
21378 * Else query afe for doa tracking params.
21379 * This is to support in cases where LSM directly connects to
21380 * AFE for FFNS.
21381 */
21382 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21383 &copp_idx);
21384 if (!ret)
21385 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
21386 &doa_tracking_data);
21387 else
21388 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
21389
21390 if (ret) {
21391 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
21392 __func__, ret);
21393 ret = -EINVAL;
21394 goto done;
21395 }
21396
21397 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
21398 sizeof(struct doa_tracking_mon_param));
21399done:
21400 return ret;
21401}
21402
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021403static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
21404 {
21405 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21407 .name = "Sound Focus Voice Tx SLIMBUS_0",
21408 .info = msm_sound_focus_info,
21409 .get = msm_voice_sound_focus_get,
21410 .put = msm_voice_sound_focus_put,
21411 },
21412 {
21413 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21415 .name = "Source Tracking Voice Tx SLIMBUS_0",
21416 .info = msm_source_tracking_info,
21417 .get = msm_voice_source_tracking_get,
21418 },
21419 {
21420 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21421 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21422 .name = "Sound Focus Audio Tx SLIMBUS_0",
21423 .info = msm_sound_focus_info,
21424 .get = msm_audio_sound_focus_get,
21425 .put = msm_audio_sound_focus_put,
21426 },
21427 {
21428 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21430 .name = "Source Tracking Audio Tx SLIMBUS_0",
21431 .info = msm_source_tracking_info,
21432 .get = msm_audio_source_tracking_get,
21433 },
21434 {
21435 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21436 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21437 .name = "Sound Focus Voice Tx TERT_MI2S",
21438 .info = msm_sound_focus_info,
21439 .get = msm_voice_sound_focus_get,
21440 .put = msm_voice_sound_focus_put,
21441 },
21442 {
21443 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21444 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21445 .name = "Source Tracking Voice Tx TERT_MI2S",
21446 .info = msm_source_tracking_info,
21447 .get = msm_voice_source_tracking_get,
21448 },
21449 {
21450 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21451 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21452 .name = "Sound Focus Audio Tx TERT_MI2S",
21453 .info = msm_sound_focus_info,
21454 .get = msm_audio_sound_focus_get,
21455 .put = msm_audio_sound_focus_put,
21456 },
21457 {
21458 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21459 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21460 .name = "Source Tracking Audio Tx TERT_MI2S",
21461 .info = msm_source_tracking_info,
21462 .get = msm_audio_source_tracking_get,
21463 },
21464 {
21465 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21466 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21467 .name = "Sound Focus Voice Tx INT3_MI2S",
21468 .info = msm_sound_focus_info,
21469 .get = msm_voice_sound_focus_get,
21470 .put = msm_voice_sound_focus_put,
21471 },
21472 {
21473 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21474 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21475 .name = "Source Tracking Voice Tx INT3_MI2S",
21476 .info = msm_source_tracking_info,
21477 .get = msm_voice_source_tracking_get,
21478 },
21479 {
21480 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21481 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21482 .name = "Sound Focus Audio Tx INT3_MI2S",
21483 .info = msm_sound_focus_info,
21484 .get = msm_audio_sound_focus_get,
21485 .put = msm_audio_sound_focus_put,
21486 },
21487 {
21488 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21489 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21490 .name = "Source Tracking Audio Tx INT3_MI2S",
21491 .info = msm_source_tracking_info,
21492 .get = msm_audio_source_tracking_get,
21493 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053021494 {
21495 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21496 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21497 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
21498 .info = msm_sound_focus_info,
21499 .get = msm_voice_sound_focus_get,
21500 .put = msm_voice_sound_focus_put,
21501 },
21502 {
21503 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21504 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21505 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
21506 .info = msm_source_tracking_info,
21507 .get = msm_voice_source_tracking_get,
21508 },
21509 {
21510 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21511 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21512 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
21513 .info = msm_sound_focus_info,
21514 .get = msm_audio_sound_focus_get,
21515 .put = msm_audio_sound_focus_put,
21516 },
21517 {
21518 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21519 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21520 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
21521 .info = msm_source_tracking_info,
21522 .get = msm_audio_source_tracking_get,
21523 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053021524 {
21525 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21526 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21527 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
21528 .info = msm_sound_focus_info,
21529 .get = msm_voice_sound_focus_get,
21530 .put = msm_voice_sound_focus_put,
21531 },
21532 {
21533 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21534 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21535 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
21536 .info = msm_source_tracking_info,
21537 .get = msm_voice_source_tracking_get,
21538 },
21539 {
21540 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21541 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21542 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
21543 .info = msm_sound_focus_info,
21544 .get = msm_audio_sound_focus_get,
21545 .put = msm_audio_sound_focus_put,
21546 },
21547 {
21548 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21549 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21550 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
21551 .info = msm_source_tracking_info,
21552 .get = msm_audio_source_tracking_get,
21553 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021554 {
21555 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21556 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21557 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
21558 .info = msm_sound_focus_info,
21559 .get = msm_voice_sound_focus_get,
21560 .put = msm_voice_sound_focus_put,
21561 },
21562 {
21563 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21564 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21565 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
21566 .info = msm_source_tracking_info,
21567 .get = msm_voice_source_tracking_get,
21568 },
21569 {
21570 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21571 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21572 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
21573 .info = msm_sound_focus_info,
21574 .get = msm_audio_sound_focus_get,
21575 .put = msm_audio_sound_focus_put,
21576 },
21577 {
21578 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21579 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21580 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
21581 .info = msm_source_tracking_info,
21582 .get = msm_audio_source_tracking_get,
21583 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021584 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053021585 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21586 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21587 .name = "Sound Focus Audio Tx PRIMARY_TDM",
21588 .info = msm_sound_focus_info,
21589 .get = msm_audio_sound_focus_get,
21590 .put = msm_audio_sound_focus_put,
21591 },
21592 {
21593 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21594 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21595 .name = "Source Tracking Audio Tx PRIMARY_TDM",
21596 .info = msm_source_tracking_info,
21597 .get = msm_audio_source_tracking_get,
21598 },
21599 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021600 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21601 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21602 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
21603 .info = msm_doa_tracking_mon_info,
21604 .get = msm_doa_tracking_mon_get,
21605 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021606};
21607
21608static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
21609 struct snd_ctl_elem_value *ucontrol)
21610{
21611 int ret = 0;
21612 int item;
21613 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
21614
21615 pr_debug("%s item is %d\n", __func__,
21616 ucontrol->value.enumerated.item[0]);
21617 mutex_lock(&routing_lock);
21618 item = ucontrol->value.enumerated.item[0];
21619 if (item < e->items) {
21620 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
21621 __func__, e->shift_l, e->values[item]);
21622 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
21623 e->values[item] < MSM_BACKEND_DAI_MAX)
21624 /* Enable feedback TX path */
21625 ret = afe_spk_prot_feed_back_cfg(
21626 msm_bedais[e->values[item]].port_id,
21627 msm_bedais[e->shift_l].port_id, 1, 0, 1);
21628 else {
21629 pr_debug("%s values are out of range item %d\n",
21630 __func__, e->values[item]);
21631 /* Disable feedback TX path */
21632 if (e->values[item] == MSM_BACKEND_DAI_MAX)
21633 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
21634 else
21635 ret = -EINVAL;
21636 }
21637 } else {
21638 pr_err("%s item value is out of range item\n", __func__);
21639 ret = -EINVAL;
21640 }
21641 mutex_unlock(&routing_lock);
21642 return ret;
21643}
21644
21645static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
21646 struct snd_ctl_elem_value *ucontrol)
21647{
21648 int ret = 0;
21649 int item;
21650 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
21651
21652 pr_debug("%s item is %d\n", __func__,
21653 ucontrol->value.enumerated.item[0]);
21654 mutex_lock(&routing_lock);
21655 item = ucontrol->value.enumerated.item[0];
21656 if (item < e->items) {
21657 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
21658 __func__, e->shift_l, e->values[item]);
21659 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
21660 e->values[item] < MSM_BACKEND_DAI_MAX)
21661 /* Enable feedback TX path */
21662 ret = afe_spk_prot_feed_back_cfg(
21663 msm_bedais[e->values[item]].port_id,
21664 msm_bedais[e->shift_l].port_id,
21665 1, 1, 1);
21666 else {
21667 pr_debug("%s values are out of range item %d\n",
21668 __func__, e->values[item]);
21669 /* Disable feedback TX path */
21670 if (e->values[item] == MSM_BACKEND_DAI_MAX)
21671 ret = afe_spk_prot_feed_back_cfg(0,
21672 0, 0, 0, 0);
21673 else
21674 ret = -EINVAL;
21675 }
21676 } else {
21677 pr_err("%s item value is out of range item\n", __func__);
21678 ret = -EINVAL;
21679 }
21680 mutex_unlock(&routing_lock);
21681 return ret;
21682}
21683
21684static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
21685 struct snd_ctl_elem_value *ucontrol)
21686{
21687 pr_debug("%s\n", __func__);
21688 return 0;
21689}
21690
21691static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
21692 struct snd_ctl_elem_value *ucontrol)
21693{
21694 pr_debug("%s\n", __func__);
21695 ucontrol->value.enumerated.item[0] = 0;
21696 return 0;
21697}
21698
21699static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
21700 "ZERO", "SLIM4_TX"
21701};
21702
21703static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
21704 "ZERO", "SLIM4_TX"
21705};
21706
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021707static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
21708 "ZERO", "WSA_CDC_DMA_TX_0"
21709};
21710
21711static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
21712 "ZERO", "WSA_CDC_DMA_TX_0"
21713};
21714
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021715static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
21716 "ZERO", "SENARY_TX"
21717};
21718
21719static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
21720 "ZERO", "INT5_MI2S_TX"
21721};
21722
21723static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
21724 "ZERO", "INT5_MI2S_TX"
21725};
21726
Josh Kirschea69fed2018-12-11 16:15:08 -080021727static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021728 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
21729};
21730
Josh Kirschea69fed2018-12-11 16:15:08 -080021731static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021732 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
21733};
21734
Josh Kirschea69fed2018-12-11 16:15:08 -080021735static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021736 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
21737};
21738
Josh Kirschea69fed2018-12-11 16:15:08 -080021739static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021740 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
21741};
21742
21743
Josh Kirschea69fed2018-12-11 16:15:08 -080021744static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021745 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
21746};
21747
Josh Kirschea69fed2018-12-11 16:15:08 -080021748static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021749 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
21750};
21751
Josh Kirschea69fed2018-12-11 16:15:08 -080021752static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021753 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
21754};
21755
21756static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
21757 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
21758 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
21759 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
21760
21761static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
21762 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
21763 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
21764 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
21765
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021766static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
21767 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
21768 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
21769 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
21770
21771static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
21772 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
21773 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
21774 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
21775
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021776static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
21777 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
21778 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
21779 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
21780
21781static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
21782 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
21783 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
21784 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
21785 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
21786
21787static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
21788 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
21789 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
21790 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
21791 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
21792
21793static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
21794 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
21795 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
21796 spkr_prot_put_vi_lch_port);
21797
21798static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
21799 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
21800 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
21801 spkr_prot_put_vi_rch_port);
21802
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021803static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
21804 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
21805 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
21806 spkr_prot_put_vi_lch_port);
21807
21808static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
21809 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
21810 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
21811 spkr_prot_put_vi_rch_port);
21812
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021813static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
21814 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
21815 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
21816 spkr_prot_put_vi_lch_port);
21817
21818static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
21819 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
21820 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
21821 spkr_prot_put_vi_lch_port);
21822
21823static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
21824 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
21825 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
21826 spkr_prot_put_vi_rch_port);
21827
21828static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
21829 /* Frontend AIF */
21830 /* Widget name equals to Front-End DAI name<Need confirmation>,
21831 * Stream name must contains substring of front-end dai name
21832 */
21833 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
21834 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
21835 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
21836 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
21837 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
21838 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
21839 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
21840 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
21841 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
21842 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
21843 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
21844 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
21845 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
21846 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
21847 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
21848 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
21849 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070021850 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053021851 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021852 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
21853 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
21854 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
21855 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
21856 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
21857 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
21858 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
21859 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
21860 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053021861 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053021862 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021863 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
21864 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
21865 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
21866 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070021867 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053021868 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080021869 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
21870 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021871 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
21872 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
21873 "VoiceMMode1 Playback", 0, 0, 0, 0),
21874 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
21875 "VoiceMMode1 Capture", 0, 0, 0, 0),
21876 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
21877 "VoiceMMode2 Playback", 0, 0, 0, 0),
21878 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
21879 "VoiceMMode2 Capture", 0, 0, 0, 0),
21880 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
21881 0, 0, 0, 0),
21882 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
21883 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021884 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
21885 0, 0, 0, 0),
21886 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
21887 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021888 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
21889 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021890 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
21891 0, 0, 0, 0),
21892 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
21893 0, 0, 0, 0),
21894 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
21895 0, 0, 0, 0),
21896 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
21897 0, 0, 0, 0),
21898 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
21899 0, 0, 0, 0),
21900 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
21901 0, 0, 0, 0),
21902 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
21903 0, 0, 0, 0),
21904 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
21905 0, 0, 0, 0),
21906 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
21907 0, 0, 0, 0),
21908 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
21909 0, 0, 0, 0),
21910 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
21911 0, 0, 0, 0),
21912 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
21913 0, 0, 0, 0),
21914 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
21915 0, 0, 0, 0),
21916 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
21917 0, 0, 0, 0),
21918 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
21919 0, 0, 0, 0),
21920 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
21921 0, 0, 0, 0),
21922 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
21923 0, 0, 0, 0),
21924 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
21925 0, 0, 0, 0),
21926 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
21927 0, 0, 0, 0),
21928 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
21929 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
21930 0, 0, 0, 0),
21931 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
21932 "INT0 MI2S_RX Hostless Playback",
21933 0, 0, 0, 0),
21934 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
21935 "INT4 MI2S_RX Hostless Playback",
21936 0, 0, 0, 0),
21937 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
21938 "Primary MI2S_RX Hostless Playback",
21939 0, 0, 0, 0),
21940 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
21941 "Secondary MI2S_RX Hostless Playback",
21942 0, 0, 0, 0),
21943 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
21944 "Tertiary MI2S_RX Hostless Playback",
21945 0, 0, 0, 0),
21946 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
21947 "Quaternary MI2S_RX Hostless Playback",
21948 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021949 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
21950 "Quinary MI2S_RX Hostless Playback",
21951 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021952 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
21953 "Senary MI2S_RX Hostless Playback",
21954 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021955
21956 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
21957 0, 0, 0, 0),
21958 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
21959 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021960 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
21961 0, 0, 0, 0),
21962 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
21963 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021964 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
21965 0, 0, 0, 0),
21966 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
21967 "INT3 MI2S_TX Hostless Capture",
21968 0, 0, 0, 0),
21969 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
21970 "Tertiary MI2S_TX Hostless Capture",
21971 0, 0, 0, 0),
21972 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
21973 "Secondary MI2S_TX Hostless Capture",
21974 0, 0, 0, 0),
21975 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
21976 "Primary MI2S_TX Hostless Capture",
21977 0, 0, 0, 0),
21978 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
21979 0, 0, 0, 0),
21980 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
21981 0, 0, 0, 0),
21982 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
21983 "Quaternary MI2S_TX Hostless Capture",
21984 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053021985 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
21986 "Quinary MI2S_TX Hostless Capture",
21987 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021988 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
21989 "Senary MI2S_TX Hostless Capture",
21990 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021991
21992 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
21993 "Primary TDM0 Hostless Playback",
21994 0, 0, 0, 0),
21995 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
21996 "Primary TDM0 Hostless Capture",
21997 0, 0, 0, 0),
21998 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
21999 "Primary TDM1 Hostless Playback",
22000 0, 0, 0, 0),
22001 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
22002 "Primary TDM1 Hostless Capture",
22003 0, 0, 0, 0),
22004 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
22005 "Primary TDM2 Hostless Playback",
22006 0, 0, 0, 0),
22007 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
22008 "Primary TDM2 Hostless Capture",
22009 0, 0, 0, 0),
22010 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
22011 "Primary TDM3 Hostless Playback",
22012 0, 0, 0, 0),
22013 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
22014 "Primary TDM3 Hostless Capture",
22015 0, 0, 0, 0),
22016 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
22017 "Primary TDM4 Hostless Playback",
22018 0, 0, 0, 0),
22019 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
22020 "Primary TDM4 Hostless Capture",
22021 0, 0, 0, 0),
22022 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
22023 "Primary TDM5 Hostless Playback",
22024 0, 0, 0, 0),
22025 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
22026 "Primary TDM5 Hostless Capture",
22027 0, 0, 0, 0),
22028 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
22029 "Primary TDM6 Hostless Playback",
22030 0, 0, 0, 0),
22031 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
22032 "Primary TDM6 Hostless Capture",
22033 0, 0, 0, 0),
22034 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
22035 "Primary TDM7 Hostless Playback",
22036 0, 0, 0, 0),
22037 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
22038 "Primary TDM7 Hostless Capture",
22039 0, 0, 0, 0),
22040 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
22041 "Secondary TDM0 Hostless Playback",
22042 0, 0, 0, 0),
22043 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
22044 "Secondary TDM0 Hostless Capture",
22045 0, 0, 0, 0),
22046 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
22047 "Secondary TDM1 Hostless Playback",
22048 0, 0, 0, 0),
22049 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
22050 "Secondary TDM1 Hostless Capture",
22051 0, 0, 0, 0),
22052 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
22053 "Secondary TDM2 Hostless Playback",
22054 0, 0, 0, 0),
22055 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
22056 "Secondary TDM2 Hostless Capture",
22057 0, 0, 0, 0),
22058 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
22059 "Secondary TDM3 Hostless Playback",
22060 0, 0, 0, 0),
22061 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
22062 "Secondary TDM3 Hostless Capture",
22063 0, 0, 0, 0),
22064 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
22065 "Secondary TDM4 Hostless Playback",
22066 0, 0, 0, 0),
22067 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
22068 "Secondary TDM4 Hostless Capture",
22069 0, 0, 0, 0),
22070 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
22071 "Secondary TDM5 Hostless Playback",
22072 0, 0, 0, 0),
22073 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
22074 "Secondary TDM5 Hostless Capture",
22075 0, 0, 0, 0),
22076 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
22077 "Secondary TDM6 Hostless Playback",
22078 0, 0, 0, 0),
22079 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
22080 "Secondary TDM6 Hostless Capture",
22081 0, 0, 0, 0),
22082 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
22083 "Secondary TDM7 Hostless Playback",
22084 0, 0, 0, 0),
22085 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
22086 "Secondary TDM7 Hostless Capture",
22087 0, 0, 0, 0),
22088 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
22089 "Tertiary TDM0 Hostless Playback",
22090 0, 0, 0, 0),
22091 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
22092 "Tertiary TDM0 Hostless Capture",
22093 0, 0, 0, 0),
22094 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
22095 "Tertiary TDM1 Hostless Playback",
22096 0, 0, 0, 0),
22097 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
22098 "Tertiary TDM1 Hostless Capture",
22099 0, 0, 0, 0),
22100 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
22101 "Tertiary TDM2 Hostless Playback",
22102 0, 0, 0, 0),
22103 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
22104 "Tertiary TDM2 Hostless Capture",
22105 0, 0, 0, 0),
22106 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
22107 "Tertiary TDM3 Hostless Playback",
22108 0, 0, 0, 0),
22109 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
22110 "Tertiary TDM3 Hostless Capture",
22111 0, 0, 0, 0),
22112 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
22113 "Tertiary TDM4 Hostless Playback",
22114 0, 0, 0, 0),
22115 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
22116 "Tertiary TDM4 Hostless Capture",
22117 0, 0, 0, 0),
22118 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
22119 "Tertiary TDM5 Hostless Playback",
22120 0, 0, 0, 0),
22121 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
22122 "Tertiary TDM5 Hostless Capture",
22123 0, 0, 0, 0),
22124 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
22125 "Tertiary TDM6 Hostless Playback",
22126 0, 0, 0, 0),
22127 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
22128 "Tertiary TDM6 Hostless Capture",
22129 0, 0, 0, 0),
22130 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
22131 "Tertiary TDM7 Hostless Playback",
22132 0, 0, 0, 0),
22133 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
22134 "Tertiary TDM7 Hostless Capture",
22135 0, 0, 0, 0),
22136 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
22137 "Quaternary TDM0 Hostless Playback",
22138 0, 0, 0, 0),
22139 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
22140 "Quaternary TDM0 Hostless Capture",
22141 0, 0, 0, 0),
22142 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
22143 "Quaternary TDM1 Hostless Playback",
22144 0, 0, 0, 0),
22145 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
22146 "Quaternary TDM1 Hostless Capture",
22147 0, 0, 0, 0),
22148 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
22149 "Quaternary TDM2 Hostless Playback",
22150 0, 0, 0, 0),
22151 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
22152 "Quaternary TDM2 Hostless Capture",
22153 0, 0, 0, 0),
22154 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
22155 "Quaternary TDM3 Hostless Playback",
22156 0, 0, 0, 0),
22157 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
22158 "Quaternary TDM3 Hostless Capture",
22159 0, 0, 0, 0),
22160 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
22161 "Quaternary TDM4 Hostless Playback",
22162 0, 0, 0, 0),
22163 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
22164 "Quaternary TDM4 Hostless Capture",
22165 0, 0, 0, 0),
22166 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
22167 "Quaternary TDM5 Hostless Playback",
22168 0, 0, 0, 0),
22169 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
22170 "Quaternary TDM5 Hostless Capture",
22171 0, 0, 0, 0),
22172 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
22173 "Quaternary TDM6 Hostless Playback",
22174 0, 0, 0, 0),
22175 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
22176 "Quaternary TDM6 Hostless Capture",
22177 0, 0, 0, 0),
22178 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
22179 "Quaternary TDM7 Hostless Playback",
22180 0, 0, 0, 0),
22181 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
22182 "Quaternary TDM7 Hostless Capture",
22183 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022184 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
22185 "Quinary TDM0 Hostless Playback",
22186 0, 0, 0, 0),
22187 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
22188 "Quinary TDM0 Hostless Capture",
22189 0, 0, 0, 0),
22190 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
22191 "Quinary TDM1 Hostless Playback",
22192 0, 0, 0, 0),
22193 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
22194 "Quinary TDM1 Hostless Capture",
22195 0, 0, 0, 0),
22196 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
22197 "Quinary TDM2 Hostless Playback",
22198 0, 0, 0, 0),
22199 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
22200 "Quinary TDM2 Hostless Capture",
22201 0, 0, 0, 0),
22202 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
22203 "Quinary TDM3 Hostless Playback",
22204 0, 0, 0, 0),
22205 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
22206 "Quinary TDM3 Hostless Capture",
22207 0, 0, 0, 0),
22208 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
22209 "Quinary TDM4 Hostless Playback",
22210 0, 0, 0, 0),
22211 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
22212 "Quinary TDM4 Hostless Capture",
22213 0, 0, 0, 0),
22214 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
22215 "Quinary TDM5 Hostless Playback",
22216 0, 0, 0, 0),
22217 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
22218 "Quinary TDM5 Hostless Capture",
22219 0, 0, 0, 0),
22220 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
22221 "Quinary TDM6 Hostless Playback",
22222 0, 0, 0, 0),
22223 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
22224 "Quinary TDM6 Hostless Capture",
22225 0, 0, 0, 0),
22226 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
22227 "Quinary TDM7 Hostless Playback",
22228 0, 0, 0, 0),
22229 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
22230 "Quinary TDM7 Hostless Capture",
22231 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022232 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
22233 "Senary TDM0 Hostless Playback",
22234 0, 0, 0, 0),
22235 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
22236 "Senary TDM0 Hostless Capture",
22237 0, 0, 0, 0),
22238 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
22239 "Senary TDM1 Hostless Playback",
22240 0, 0, 0, 0),
22241 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
22242 "Senary TDM1 Hostless Capture",
22243 0, 0, 0, 0),
22244 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
22245 "Senary TDM2 Hostless Playback",
22246 0, 0, 0, 0),
22247 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
22248 "Senary TDM2 Hostless Capture",
22249 0, 0, 0, 0),
22250 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
22251 "Senary TDM3 Hostless Playback",
22252 0, 0, 0, 0),
22253 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
22254 "Senary TDM3 Hostless Capture",
22255 0, 0, 0, 0),
22256 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
22257 "Senary TDM4 Hostless Playback",
22258 0, 0, 0, 0),
22259 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
22260 "Senary TDM4 Hostless Capture",
22261 0, 0, 0, 0),
22262 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
22263 "Senary TDM5 Hostless Playback",
22264 0, 0, 0, 0),
22265 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
22266 "Senary TDM5 Hostless Capture",
22267 0, 0, 0, 0),
22268 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
22269 "Senary TDM6 Hostless Playback",
22270 0, 0, 0, 0),
22271 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
22272 "Senary TDM6 Hostless Capture",
22273 0, 0, 0, 0),
22274 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
22275 "Senary TDM7 Hostless Playback",
22276 0, 0, 0, 0),
22277 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
22278 "Senary TDM7 Hostless Capture",
22279 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022280
22281 /* LSM */
22282 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
22283 0, 0, 0, 0),
22284 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
22285 0, 0, 0, 0),
22286 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
22287 0, 0, 0, 0),
22288 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
22289 0, 0, 0, 0),
22290 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
22291 0, 0, 0, 0),
22292 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
22293 0, 0, 0, 0),
22294 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
22295 0, 0, 0, 0),
22296 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
22297 0, 0, 0, 0),
22298 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
22299 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
22300 /* Backend AIF */
22301 /* Stream name equals to backend dai link stream name */
22302 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
22303 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
22304 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020022305 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
22306 0, 0, 0, 0),
22307 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
22308 0, 0, 0, 0),
22309 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
22310 0, 0, 0, 0),
22311 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
22312 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022313 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
22314 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
22315 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
22316 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
22317 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
22318 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070022319 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
22320 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022321 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
22322 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
22323 0, 0, 0, 0),
22324 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
22325 0, 0, 0, 0),
22326 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
22327 0, 0, 0, 0),
22328 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
22329 "Secondary MI2S Playback SD1",
22330 0, 0, 0, 0),
22331 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
22332 0, 0, 0, 0),
22333 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
22334 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022335 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
22336 0, 0, 0, 0),
22337 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
22338 0, 0, 0, 0),
22339 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
22340 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022341 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
22342 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022343 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
22344 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022345 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
22346 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022347 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
22348 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022349 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
22350 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
22351 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
22352 0, 0, 0, 0),
22353 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
22354 0, 0, 0, 0),
22355 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
22356 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022357 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
22358 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022359 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
22360 0, 0, 0, 0),
22361 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
22362 0, 0, 0, 0),
22363 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
22364 0, 0, 0, 0),
22365 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
22366 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
22367 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
22368 0, 0, 0, 0),
22369 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
22370 0, 0, 0, 0),
22371 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
22372 0, 0, 0, 0),
22373 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
22374 0, 0, 0, 0),
22375 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
22376 0, 0, 0, 0),
22377 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
22378 0, 0, 0, 0),
22379 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
22380 0, 0, 0, 0),
22381 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
22382 0, 0, 0, 0),
22383 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
22384 0, 0, 0, 0),
22385 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
22386 0, 0, 0, 0),
22387 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
22388 0, 0, 0, 0),
22389 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
22390 0, 0, 0, 0),
22391 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
22392 0, 0, 0, 0),
22393 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
22394 0, 0, 0, 0),
22395 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
22396 0, 0, 0, 0),
22397 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
22398 0, 0, 0, 0),
22399 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
22400 0, 0, 0, 0),
22401 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
22402 0, 0, 0, 0),
22403 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
22404 0, 0, 0, 0),
22405 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
22406 0, 0, 0, 0),
22407 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
22408 0, 0, 0, 0),
22409 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
22410 0, 0, 0, 0),
22411 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
22412 0, 0, 0, 0),
22413 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
22414 0, 0, 0, 0),
22415 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
22416 0, 0, 0, 0),
22417 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
22418 0, 0, 0, 0),
22419 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
22420 0, 0, 0, 0),
22421 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
22422 0, 0, 0, 0),
22423 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
22424 0, 0, 0, 0),
22425 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
22426 0, 0, 0, 0),
22427 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
22428 0, 0, 0, 0),
22429 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
22430 0, 0, 0, 0),
22431 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
22432 0, 0, 0, 0),
22433 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
22434 0, 0, 0, 0),
22435 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
22436 0, 0, 0, 0),
22437 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
22438 0, 0, 0, 0),
22439 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
22440 0, 0, 0, 0),
22441 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
22442 0, 0, 0, 0),
22443 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
22444 0, 0, 0, 0),
22445 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
22446 0, 0, 0, 0),
22447 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
22448 0, 0, 0, 0),
22449 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
22450 0, 0, 0, 0),
22451 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
22452 0, 0, 0, 0),
22453 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
22454 0, 0, 0, 0),
22455 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
22456 0, 0, 0, 0),
22457 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
22458 0, 0, 0, 0),
22459 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
22460 0, 0, 0, 0),
22461 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
22462 0, 0, 0, 0),
22463 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
22464 0, 0, 0, 0),
22465 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
22466 0, 0, 0, 0),
22467 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
22468 0, 0, 0, 0),
22469 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
22470 0, 0, 0, 0),
22471 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
22472 0, 0, 0, 0),
22473 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
22474 0, 0, 0, 0),
22475 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
22476 0, 0, 0, 0),
22477 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
22478 0, 0, 0, 0),
22479 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
22480 0, 0, 0, 0),
22481 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
22482 0, 0, 0, 0),
22483 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
22484 0, 0, 0, 0),
22485 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
22486 0, 0, 0, 0),
22487 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
22488 0, 0, 0, 0),
22489 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
22490 0, 0, 0, 0),
22491 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
22492 0, 0, 0, 0),
22493 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
22494 0, 0, 0, 0),
22495 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
22496 0, 0, 0, 0),
22497 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
22498 0, 0, 0, 0),
22499 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
22500 0, 0, 0, 0),
22501 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
22502 0, 0, 0, 0),
22503 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
22504 0, 0, 0, 0),
22505 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
22506 0, 0, 0, 0),
22507 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
22508 0, 0, 0, 0),
22509 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
22510 0, 0, 0, 0),
22511 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
22512 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022513 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
22514 0, 0, 0, 0),
22515 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
22516 0, 0, 0, 0),
22517 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
22518 0, 0, 0, 0),
22519 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
22520 0, 0, 0, 0),
22521 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
22522 0, 0, 0, 0),
22523 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
22524 0, 0, 0, 0),
22525 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
22526 0, 0, 0, 0),
22527 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
22528 0, 0, 0, 0),
22529 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
22530 0, 0, 0, 0),
22531 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
22532 0, 0, 0, 0),
22533 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
22534 0, 0, 0, 0),
22535 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
22536 0, 0, 0, 0),
22537 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
22538 0, 0, 0, 0),
22539 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
22540 0, 0, 0, 0),
22541 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
22542 0, 0, 0, 0),
22543 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
22544 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022545 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
22546 0, 0, 0, 0),
22547 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
22548 0, 0, 0, 0),
22549 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
22550 0, 0, 0, 0),
22551 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
22552 0, 0, 0, 0),
22553 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
22554 0, 0, 0, 0),
22555 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
22556 0, 0, 0, 0),
22557 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
22558 0, 0, 0, 0),
22559 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
22560 0, 0, 0, 0),
22561 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
22562 0, 0, 0, 0),
22563 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
22564 0, 0, 0, 0),
22565 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
22566 0, 0, 0, 0),
22567 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
22568 0, 0, 0, 0),
22569 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
22570 0, 0, 0, 0),
22571 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
22572 0, 0, 0, 0),
22573 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
22574 0, 0, 0, 0),
22575 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
22576 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022577 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
22578 0, 0, 0, 0),
22579 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
22580 0, 0, 0, 0),
22581 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
22582 0, 0, 0, 0),
22583 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
22584 0, 0, 0, 0),
22585 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
22586 0, 0, 0, 0),
22587 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
22588 0, 0, 0, 0),
22589 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
22590 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022591 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
22592 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022593 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
22594 0, 0, 0, 0),
22595 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
22596 0, 0, 0, 0),
22597 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
22598 0, 0, 0, 0),
22599 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
22600 0, 0, 0, 0),
22601 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
22602 0, 0, 0, 0),
22603 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
22604 0, 0, 0, 0),
22605 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
22606 0, 0, 0, 0),
22607 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
22608 0, 0, 0, 0),
22609 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
22610 0, 0, 0, 0),
22611 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
22612 0, 0, 0, 0),
22613 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
22614 0, 0, 0, 0),
22615 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
22616 0, 0, 0, 0),
22617 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
22618 0, 0, 0, 0),
22619 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
22620 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022621 /* incall */
22622 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
22623 0, 0, 0, 0),
22624 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
22625 0, 0, 0, 0),
22626 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
22627 0, 0, 0, 0),
22628 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
22629 0, 0, 0, 0),
22630 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
22631 0, 0, 0, 0),
22632 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
22633 0, 0, 0, 0),
22634 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
22635 0, 0, 0, 0),
22636 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
22637 0, 0, 0, 0),
22638 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
22639
22640 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
22641 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
22642 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
22643 0, 0, 0, 0),
22644 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
22645 0, 0, 0, 0),
22646 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
22647 0, 0, 0, 0),
22648 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
22649 0, 0, 0, 0),
22650 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
22651 0, 0, 0, 0),
22652 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
22653 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022654 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
22655 0, 0, 0, 0),
22656 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
22657 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022658 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
22659 0, 0, 0, 0),
22660 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
22661 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022662 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
22663 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
22664 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
22665 0, 0, 0, 0),
22666 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
22667 0, 0, 0, 0),
22668 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
22669 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
22670 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
22671 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
22672 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
22673 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
22674 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
22675 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
22676 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
22677 /* In- call recording */
22678 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
22679 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053022680 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
22681 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022682 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
22683 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
22684
22685 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
22686 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053022687 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
22688 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022689 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
22690 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
22691
22692 /* Switch Definitions */
22693 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
22694 &slim_fm_switch_mixer_controls),
22695 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
22696 &slim1_fm_switch_mixer_controls),
22697 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
22698 &slim3_fm_switch_mixer_controls),
22699 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
22700 &slim4_fm_switch_mixer_controls),
22701 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
22702 &slim6_fm_switch_mixer_controls),
22703 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22704 &pcm_rx_switch_mixer_controls),
22705 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22706 &int0_mi2s_rx_switch_mixer_controls),
22707 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22708 &int4_mi2s_rx_switch_mixer_controls),
22709 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22710 &pri_mi2s_rx_switch_mixer_controls),
22711 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22712 &sec_mi2s_rx_switch_mixer_controls),
22713 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22714 &tert_mi2s_rx_switch_mixer_controls),
22715 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22716 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053022717 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22718 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080022719 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
22720 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022721 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
22722 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022723 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
22724 &hfp_pri_aux_switch_mixer_controls),
22725 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
22726 &hfp_aux_switch_mixer_controls),
22727 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
22728 &hfp_int_switch_mixer_controls),
22729 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
22730 &hfp_slim7_switch_mixer_controls),
22731 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
22732 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022733 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
22734 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022735 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022736 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022737 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022738 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022739
22740 /* Mixer definitions */
22741 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22742 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
22743 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22744 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
22745 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22746 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
22747 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22748 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
22749 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22750 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
22751 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22752 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053022753 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22754 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022755 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
22756 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
22757 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
22758 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070022759 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
22760 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020022761 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22762 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
22763 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22764 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022765 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22766 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
22767 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22768 quaternary_mi2s_rx_mixer_controls,
22769 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
22770 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22771 tertiary_mi2s_rx_mixer_controls,
22772 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
22773 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22774 secondary_mi2s_rx_mixer_controls,
22775 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
22776 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22777 secondary_mi2s_rx2_mixer_controls,
22778 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
22779 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22780 primary_mi2s_rx_mixer_controls,
22781 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
22782 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22783 int0_mi2s_rx_mixer_controls,
22784 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
22785 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22786 int4_mi2s_rx_mixer_controls,
22787 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
22788 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22789 quinary_mi2s_rx_mixer_controls,
22790 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022791 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22792 senary_mi2s_rx_mixer_controls,
22793 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022794 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22795 pri_tdm_rx_0_mixer_controls,
22796 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
22797 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22798 pri_tdm_rx_1_mixer_controls,
22799 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
22800 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22801 pri_tdm_rx_2_mixer_controls,
22802 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
22803 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22804 pri_tdm_rx_3_mixer_controls,
22805 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
22806 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22807 pri_tdm_tx_0_mixer_controls,
22808 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
22809 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22810 sec_tdm_rx_0_mixer_controls,
22811 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
22812 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22813 sec_tdm_rx_1_mixer_controls,
22814 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
22815 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22816 sec_tdm_rx_2_mixer_controls,
22817 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
22818 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22819 sec_tdm_rx_3_mixer_controls,
22820 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
22821 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22822 sec_tdm_tx_0_mixer_controls,
22823 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
22824 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22825 tert_tdm_rx_0_mixer_controls,
22826 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
22827 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22828 tert_tdm_tx_0_mixer_controls,
22829 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
22830 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22831 tert_tdm_rx_1_mixer_controls,
22832 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
22833 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22834 tert_tdm_rx_2_mixer_controls,
22835 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
22836 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22837 tert_tdm_rx_3_mixer_controls,
22838 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
22839 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
22840 tert_tdm_rx_4_mixer_controls,
22841 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
22842 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22843 quat_tdm_rx_0_mixer_controls,
22844 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
22845 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22846 quat_tdm_tx_0_mixer_controls,
22847 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
22848 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22849 quat_tdm_rx_1_mixer_controls,
22850 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
22851 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22852 quat_tdm_rx_2_mixer_controls,
22853 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
22854 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22855 quat_tdm_rx_3_mixer_controls,
22856 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022857 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22858 quin_tdm_rx_0_mixer_controls,
22859 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
22860 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22861 quin_tdm_tx_0_mixer_controls,
22862 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
22863 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22864 quin_tdm_rx_1_mixer_controls,
22865 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
22866 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22867 quin_tdm_rx_2_mixer_controls,
22868 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
22869 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22870 quin_tdm_rx_3_mixer_controls,
22871 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022872 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22873 sen_tdm_tx_0_mixer_controls,
22874 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
22875 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22876 sen_tdm_rx_0_mixer_controls,
22877 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
22878 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22879 sen_tdm_rx_1_mixer_controls,
22880 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
22881 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22882 sen_tdm_rx_2_mixer_controls,
22883 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
22884 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22885 sen_tdm_rx_3_mixer_controls,
22886 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022887 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22888 wsa_cdc_dma_rx_0_mixer_controls,
22889 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
22890 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22891 wsa_cdc_dma_rx_1_mixer_controls,
22892 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022893 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
22894 rx_cdc_dma_rx_0_mixer_controls,
22895 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
22896 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
22897 rx_cdc_dma_rx_1_mixer_controls,
22898 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
22899 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22900 rx_cdc_dma_rx_2_mixer_controls,
22901 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
22902 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
22903 rx_cdc_dma_rx_3_mixer_controls,
22904 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
22905 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
22906 rx_cdc_dma_rx_4_mixer_controls,
22907 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
22908 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
22909 rx_cdc_dma_rx_5_mixer_controls,
22910 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
22911 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
22912 rx_cdc_dma_rx_6_mixer_controls,
22913 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
22914 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
22915 rx_cdc_dma_rx_7_mixer_controls,
22916 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022917 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
22918 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
22919 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
22920 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
22921 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
22922 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
22923 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
22924 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
22925 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
22926 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
22927 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
22928 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
22929 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
22930 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
22931 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
22932 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022933 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
22934 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022935 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
22936 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022937 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
22938 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
22939 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
22940 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
22941 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
22942 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
22943 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
22944 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022945 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
22946 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053022947 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
22948 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022949 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
22950 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
22951 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
22952 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022953 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22954 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
22955 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22956 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
22957 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22958 tert_auxpcm_rx_mixer_controls,
22959 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
22960 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22961 quat_auxpcm_rx_mixer_controls,
22962 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053022963 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22964 quin_auxpcm_rx_mixer_controls,
22965 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022966 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22967 sen_auxpcm_rx_mixer_controls,
22968 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022969 /* incall */
22970 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
22971 incall_music_delivery_mixer_controls,
22972 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
22973 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
22974 incall_music2_delivery_mixer_controls,
22975 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
22976 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22977 slimbus_4_rx_mixer_controls,
22978 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
22979 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22980 slimbus_6_rx_mixer_controls,
22981 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
22982 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
22983 usb_audio_rx_mixer_controls,
22984 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
22985 /* Voice Mixer */
22986 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
22987 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
22988 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
22989 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
22990 SND_SOC_NOPM, 0, 0,
22991 sec_i2s_rx_voice_mixer_controls,
22992 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
22993 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
22994 SND_SOC_NOPM, 0, 0,
22995 sec_mi2s_rx_voice_mixer_controls,
22996 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
22997 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
22998 SND_SOC_NOPM, 0, 0,
22999 slimbus_rx_voice_mixer_controls,
23000 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
23001 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
23002 SND_SOC_NOPM, 0, 0,
23003 bt_sco_rx_voice_mixer_controls,
23004 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
23005 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
23006 SND_SOC_NOPM, 0, 0,
23007 afe_pcm_rx_voice_mixer_controls,
23008 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
23009 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
23010 SND_SOC_NOPM, 0, 0,
23011 aux_pcm_rx_voice_mixer_controls,
23012 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
23013 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
23014 SND_SOC_NOPM, 0, 0,
23015 sec_aux_pcm_rx_voice_mixer_controls,
23016 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
23017 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
23018 SND_SOC_NOPM, 0, 0,
23019 tert_aux_pcm_rx_voice_mixer_controls,
23020 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
23021 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
23022 SND_SOC_NOPM, 0, 0,
23023 quat_aux_pcm_rx_voice_mixer_controls,
23024 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023025 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
23026 SND_SOC_NOPM, 0, 0,
23027 quin_aux_pcm_rx_voice_mixer_controls,
23028 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023029 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
23030 SND_SOC_NOPM, 0, 0,
23031 sen_aux_pcm_rx_voice_mixer_controls,
23032 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023033 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
23034 SND_SOC_NOPM, 0, 0,
23035 hdmi_rx_voice_mixer_controls,
23036 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
23037 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
23038 SND_SOC_NOPM, 0, 0,
23039 mi2s_rx_voice_mixer_controls,
23040 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
23041 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
23042 SND_SOC_NOPM, 0, 0,
23043 pri_mi2s_rx_voice_mixer_controls,
23044 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
23045 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
23046 SND_SOC_NOPM, 0, 0,
23047 int0_mi2s_rx_voice_mixer_controls,
23048 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
23049 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
23050 SND_SOC_NOPM, 0, 0,
23051 int4_mi2s_rx_voice_mixer_controls,
23052 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
23053 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
23054 SND_SOC_NOPM, 0, 0,
23055 tert_mi2s_rx_voice_mixer_controls,
23056 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
23057 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
23058 SND_SOC_NOPM, 0, 0,
23059 quat_mi2s_rx_voice_mixer_controls,
23060 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
23061 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
23062 SND_SOC_NOPM, 0, 0,
23063 quin_mi2s_rx_voice_mixer_controls,
23064 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053023065 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
23066 SND_SOC_NOPM, 0, 0,
23067 pri_tdm_rx_0_voice_mixer_controls,
23068 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
23069 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
23070 SND_SOC_NOPM, 0, 0,
23071 pri_tdm_rx_1_voice_mixer_controls,
23072 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
23073 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
23074 SND_SOC_NOPM, 0, 0,
23075 pri_tdm_rx_2_voice_mixer_controls,
23076 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
23077 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
23078 SND_SOC_NOPM, 0, 0,
23079 pri_tdm_rx_3_voice_mixer_controls,
23080 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023081 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
23082 SND_SOC_NOPM, 0, 0,
23083 sen_mi2s_rx_voice_mixer_controls,
23084 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023085 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
23086 SND_SOC_NOPM, 0, 0,
23087 quat_tdm_rx_2_voice_mixer_controls,
23088 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023089 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
23090 SND_SOC_NOPM, 0, 0,
23091 wsa_cdc_dma_rx_0_voice_mixer_controls,
23092 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
23093 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
23094 SND_SOC_NOPM, 0, 0,
23095 rx_cdc_dma_rx_0_voice_mixer_controls,
23096 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023097 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
23098 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
23099 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023100 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
23101 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
23102 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
23103 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
23104 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
23105 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
23106 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23107 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
23108 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23109 int_bt_a2dp_rx_mixer_controls,
23110 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
23111 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23112 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
23113 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23114 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
23115 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23116 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
23117 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23118 tx_voice2_stub_mixer_controls,
23119 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
23120 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23121 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
23122 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
23123 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
23124 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
23125 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
23126 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23127 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
23128 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
23129 SND_SOC_NOPM, 0, 0,
23130 slimbus_6_rx_voice_mixer_controls,
23131 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
23132 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23133 slimbus_7_rx_voice_mixer_controls,
23134 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
23135 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23136 slimbus_8_rx_voice_mixer_controls,
23137 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
23138 /* port mixer */
23139 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
23140 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
23141 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
23142 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
23143 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
23144 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
23145 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
23146 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
23147 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
23148 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
23149 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
23150 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
23151 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
23152 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
23153 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023154 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
23155 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
23156 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023157 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
23158 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
23159 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023160 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23161 sbus_1_rx_port_mixer_controls,
23162 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
23163 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23164 bt_sco_rx_port_mixer_controls,
23165 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
23166 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
23167 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
23168 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
23169 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
23170 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
23171 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
23172 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
23173 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
23174 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070023175 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070023176 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
23177 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023178 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
23179 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
23180 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
23181 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
23182 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
23183 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
23184 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
23185 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
23186 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
23187 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23188 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
23189 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23190 primary_mi2s_rx_port_mixer_controls,
23191 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
23192 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23193 sec_mi2s_rx_port_mixer_controls,
23194 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
23195 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23196 tert_mi2s_rx_port_mixer_controls,
23197 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
23198 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23199 quat_mi2s_rx_port_mixer_controls,
23200 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023201 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23202 quin_mi2s_rx_port_mixer_controls,
23203 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023204 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23205 sen_mi2s_rx_port_mixer_controls,
23206 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023207 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23208 pri_tdm_rx_0_port_mixer_controls,
23209 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
23210 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23211 pri_tdm_rx_1_port_mixer_controls,
23212 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
23213 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23214 pri_tdm_rx_2_port_mixer_controls,
23215 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
23216 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23217 pri_tdm_rx_3_port_mixer_controls,
23218 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
23219 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23220 sec_tdm_rx_0_port_mixer_controls,
23221 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
23222 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23223 sec_tdm_rx_1_port_mixer_controls,
23224 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
23225 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23226 sec_tdm_rx_2_port_mixer_controls,
23227 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
23228 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23229 sec_tdm_rx_3_port_mixer_controls,
23230 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070023231 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
23232 sec_tdm_rx_7_port_mixer_controls,
23233 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023234 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23235 tert_tdm_rx_0_port_mixer_controls,
23236 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
23237 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23238 tert_tdm_rx_1_port_mixer_controls,
23239 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
23240 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23241 tert_tdm_rx_2_port_mixer_controls,
23242 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
23243 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23244 tert_tdm_rx_3_port_mixer_controls,
23245 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
23246 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23247 quat_tdm_rx_0_port_mixer_controls,
23248 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
23249 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23250 quat_tdm_rx_1_port_mixer_controls,
23251 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
23252 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23253 quat_tdm_rx_2_port_mixer_controls,
23254 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
23255 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23256 quat_tdm_rx_3_port_mixer_controls,
23257 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050023258 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
23259 quat_tdm_rx_7_port_mixer_controls,
23260 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023261 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23262 quin_tdm_rx_0_port_mixer_controls,
23263 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
23264 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23265 quin_tdm_rx_1_port_mixer_controls,
23266 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
23267 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23268 quin_tdm_rx_2_port_mixer_controls,
23269 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
23270 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23271 quin_tdm_rx_3_port_mixer_controls,
23272 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023273 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23274 sen_tdm_rx_0_port_mixer_controls,
23275 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
23276 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23277 sen_tdm_rx_1_port_mixer_controls,
23278 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
23279 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23280 sen_tdm_rx_2_port_mixer_controls,
23281 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
23282 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23283 sen_tdm_rx_3_port_mixer_controls,
23284 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023285 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23286 int0_mi2s_rx_port_mixer_controls,
23287 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
23288 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23289 int4_mi2s_rx_port_mixer_controls,
23290 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023291 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23292 wsa_cdc_dma_rx_0_port_mixer_controls,
23293 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
23294 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23295 rx_cdc_dma_rx_0_port_mixer_controls,
23296 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023297 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
23298 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
23299 ARRAY_SIZE(tx_qchat_mixer_controls)),
23300 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
23301 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
23302 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
23303 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
23304 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
23305 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080023306 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
23307 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
23308 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023309 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
23310 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
23311 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023312 /* lsm mixer definitions */
23313 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
23314 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
23315 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
23316 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
23317 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
23318 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
23319 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
23320 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
23321 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
23322 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
23323 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
23324 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
23325 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
23326 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
23327 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
23328 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
23329 /* Virtual Pins to force backends ON atm */
23330 SND_SOC_DAPM_OUTPUT("BE_OUT"),
23331 SND_SOC_DAPM_INPUT("BE_IN"),
23332
23333 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
23334 &slim0_rx_vi_fb_lch_mux),
23335 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
23336 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023337 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
23338 &wsa_rx_0_vi_fb_lch_mux),
23339 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
23340 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023341 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
23342 &mi2s_rx_vi_fb_mux),
23343 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
23344 &int4_mi2s_rx_vi_fb_mono_ch_mux),
23345 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
23346 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
23347
23348 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
23349 &voc_ext_ec_mux),
23350 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
23351 &ext_ec_ref_mux_ul1),
23352 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
23353 &ext_ec_ref_mux_ul2),
23354 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
23355 &ext_ec_ref_mux_ul3),
23356 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
23357 &ext_ec_ref_mux_ul4),
23358 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
23359 &ext_ec_ref_mux_ul5),
23360 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
23361 &ext_ec_ref_mux_ul6),
23362 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
23363 &ext_ec_ref_mux_ul8),
23364 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
23365 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023366 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
23367 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023368 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
23369 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023370 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
23371 &ext_ec_ref_mux_ul17),
23372 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
23373 &ext_ec_ref_mux_ul18),
23374 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
23375 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080023376 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
23377 &ext_ec_ref_mux_ul28),
23378 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
23379 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023380};
23381
23382static const struct snd_soc_dapm_route intercon[] = {
23383 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23384 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23385 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23386 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23387 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23388 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23389 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23390 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23391 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23392 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23393 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23394 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23395 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23396 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23397 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23398 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023399 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023400 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
23401
23402 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23403 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23404 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23405 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23406 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23407 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23408 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23409 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23410 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23411 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23412 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23413 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23414 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23415 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23416 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23417 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023418 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023419 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
23420
23421 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23422 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23423 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23424 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23425 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23426 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23427 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23428 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23429 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23430 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23431 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23432 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23433 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23434 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23435 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23436 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023437 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023438 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
23439
23440 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23441 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23442 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23443 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23444 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23445 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23446 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23447 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23448 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23449 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23450 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23451 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23452 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23453 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23454 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23455 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023456 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023457 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
23458
23459 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23460 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23461 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23462 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23463 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23464 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23465 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23466 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23467 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23468 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23469 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23470 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23471 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23472 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23473 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23474 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023475 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023476 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
23477
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023478 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23479 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23480 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23481 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23482 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23483 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23484 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23485 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23486 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23487 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23488 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23489 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23490 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23491 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23492 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23493 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023494 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023495 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
23496
23497 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23498 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23499 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23500 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23501 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23502 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23503 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23504 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23505 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23506 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23507 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23508 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23509 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23510 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23511 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23512 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023513 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023514 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
23515
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023516 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
23517 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
23518 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
23519 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
23520 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
23521 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
23522 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
23523 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
23524 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
23525 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
23526 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
23527 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
23528 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
23529 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
23530 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
23531 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023532 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023533 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
23534
23535 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
23536 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
23537 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
23538 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
23539 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
23540 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
23541 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
23542 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
23543 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
23544 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
23545 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
23546 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
23547 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
23548 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
23549 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
23550 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023551 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023552 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
23553
23554 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23555 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23556 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
23557 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
23558 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23559 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
23560 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
23561 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
23562 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23563 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
23564 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
23565 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
23566 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
23567 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
23568 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
23569 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023570 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023571 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
23572
23573 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
23574 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
23575 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
23576 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
23577 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
23578 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
23579 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
23580 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
23581 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
23582 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
23583 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
23584 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
23585 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
23586 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
23587 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
23588 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023589 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023590 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
23591
23592 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
23593 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
23594 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
23595 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
23596 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
23597 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
23598 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
23599 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
23600 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
23601 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
23602 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
23603 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
23604 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
23605 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
23606 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
23607 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023608 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023609 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
23610
23611 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
23612 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
23613 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
23614 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
23615 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
23616 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
23617 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
23618 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
23619 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
23620 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
23621 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
23622 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
23623 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
23624 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
23625 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
23626 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023627 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023628 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
23629
23630 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
23631 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
23632 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
23633 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
23634 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
23635 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
23636 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
23637 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
23638 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
23639 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
23640 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
23641 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
23642 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
23643 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
23644 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
23645 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023646 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023647 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
23648
23649 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
23650 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
23651 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
23652 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
23653 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
23654 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
23655 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
23656 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
23657 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
23658 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
23659 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
23660 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
23661 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
23662 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
23663 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
23664 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023665 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023666 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
23667
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023668 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
23669 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
23670 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
23671 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
23672 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
23673 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
23674 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
23675 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
23676 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
23677 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
23678 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
23679 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
23680 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
23681 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
23682 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
23683 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023684 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023685 {"HDMI", NULL, "HDMI Mixer"},
23686
23687 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
23688 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
23689 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
23690 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
23691 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
23692 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
23693 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
23694 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
23695 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
23696 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
23697 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
23698 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
23699 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
23700 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
23701 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
23702 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023703 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023704 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
23705
Karthikeyan Mani57550082018-05-03 18:43:58 -070023706 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
23707 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
23708 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
23709 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
23710 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
23711 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
23712 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
23713 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
23714 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
23715 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
23716 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
23717 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
23718 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
23719 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
23720 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
23721 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023722 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023723 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
23724
Ralf Herzc8701f72018-06-20 11:37:35 +020023725 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23726 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23727 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23728 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23729 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23730 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23731 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23732 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23733 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23734 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23735 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23736 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23737 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23738 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23739 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23740 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023741 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023742 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
23743
23744 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23745 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23746 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23747 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23748 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23749 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23750 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23751 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23752 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23753 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23754 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23755 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23756 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23757 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23758 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23759 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023760 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023761 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023762
23763 /* incall */
23764 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
23765 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
23766 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
23767 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
23768 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
23769 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
23770 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
23771 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
23772 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
23773 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
23774 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23775 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23776 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23777 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23778 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
23779
23780 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23781 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23782 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23783 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23784 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23785 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23786 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23787 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23788 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23789 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23790 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23791 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23792 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23793 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23794 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23795 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023796 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023797 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
23798
23799 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23800 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23801 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23802 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23803 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23804 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23805 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23806 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23807 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23808 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23809 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23810 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23811 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23812 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23813 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23814 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023815 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023816 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
23817
Surendar Karka3ef3d812018-09-28 18:52:35 +053023818 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23819 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23820 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23821 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23822 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23823 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23824 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23825 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23826 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23827 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23828 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23829 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23830 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23831 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23832 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23833 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
23834 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
23835 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
23836
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023837 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23838 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23839 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23840 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23841 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23842 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23843 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23844 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23845 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23846 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23847 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23848 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23849 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23850 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23851 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23852 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023853 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023854 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
23855
23856 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23857 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23858 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
23859 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23860 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23861 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
23862 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
23863 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
23864 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23865 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023866 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023867 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
23868 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023869 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023870 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023871 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023872 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023873 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023874 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023875 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023876 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023877 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023878 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023879 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023880 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023881 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023882 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023883 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023884 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23885 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23886 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23887 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23888 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023889 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23890 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023891 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023892 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023893 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23894 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23895 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023896 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23897 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23898 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23899 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23900 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23901 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023902 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023903 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23904 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23905 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023906 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23907 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023908 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023909 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023910 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023911 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023912 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053023913 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053023914 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023915 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23916 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023917 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053023918 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023919 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023920 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023921 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
23922 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
23923 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023924 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010023925 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
23926 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
23927 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023928
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023929 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23930 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23931 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23932 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23933 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23934 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23935 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23936 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23937 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23938 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23939 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23940 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23941 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23942 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23943 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23944 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023945 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023946 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
23947
23948 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23949 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23950 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23951 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23952 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23953 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23954 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23955 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23956 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23957 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23958 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23959 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23960 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23961 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23962 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023963 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023964 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
23965
23966 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23967 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23968 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23969 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23970 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23971 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23972 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23973 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23974 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23975 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23976 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23977 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23978 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23979 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023980 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023981 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
23982
23983 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23984 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23985 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23986 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23987 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23988 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23989 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23990 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23991 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23992 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23993 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23994 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23995 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23996 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023997 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023998 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
23999
24000 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24001 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
24002
24003 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24004 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24005
24006 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24007 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24008 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24009 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24010 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24011 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24012 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24013 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053024014 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024015 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24016 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24017 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24018 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24019 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24020 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24021 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024022 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024023 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
24024
24025 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24026 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24027 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24028 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24029 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24030 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24031 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24032 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24033 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24034 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24035 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24036 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24037 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24038 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24039 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24040 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
24041
24042 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24043 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24044 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24045 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24046 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24047 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24048 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24049 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24050 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24051 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24052 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24053 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24054 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24055 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24056 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24057 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
24058
24059 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24060 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24061 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24062 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24063 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24064 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24065 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24066 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24067 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24068 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24069 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24070 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24071 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24072 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24073 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24074 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24075 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24076 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
24077
Karthikeyan Manic3700752019-03-11 18:33:53 -070024078 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24079 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24080 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24081 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24082 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24083 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24084 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24085 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24086 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24087 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24088 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24089 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24090 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24091 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24092 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24093 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
24094
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024095 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24096 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24097 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24098 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24099 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24100 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24101 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24102 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24103 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24104 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24105 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24106 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24107 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24108 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24109 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24110 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024111 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024112 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
24113
24114 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24115 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24116 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24117 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24118 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24119 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24120 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24121 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24122 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24123 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24124 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24125 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24126 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24127 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24128 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24129 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024130 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024131 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
24132
24133 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24134 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24135 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24136 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24137 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24138 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24139 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24140 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24141 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24142 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24143 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24144 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24145 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24146 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24147 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24148 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024149 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024150 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
24151
24152 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24153 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24154 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24155 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24156 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24157 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24158 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24159 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24160 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24161 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24162 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24163 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24164 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24165 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24166 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24167 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024168 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024169 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
24170
24171 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24172 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24173 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24174 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24175 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24176 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24177 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24178 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24179 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24180 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24181 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24182 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24183 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24184 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24185 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24186 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24187 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
24188
24189 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24190 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24191 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24192 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24193 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24194 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24195 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24196 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24197 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24198 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24199 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24200 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24201 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24202 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24203 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24204 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024205 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024206 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
24207
24208 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24209 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24210 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24211 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24212 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24213 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24214 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24215 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24216 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24217 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24218 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24219 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24220 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24221 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24222 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24223 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024224 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024225 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
24226
24227 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24228 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24229 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24230 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24231 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24232 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24233 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24234 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24235 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24236 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24237 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24238 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24239 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24240 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24241 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24242 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024243 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024244 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
24245
24246 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24247 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24248 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24249 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24250 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24251 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24252 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24253 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24254 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24255 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24256 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24257 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24258 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24259 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24260 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24261 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024262 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024263 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
24264
24265 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24266 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24267 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24268 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24269 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24270 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24271 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24272 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24273 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24274 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24275 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24276 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24277 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24278 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24279 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24280 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24281 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
24282
24283 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24284 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24285 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24286 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24287 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24288 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24289 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24290 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24291 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24292 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24293 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24294 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24295 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24296 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24297 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24298 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024299 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024300 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
24301
24302 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24303 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24304 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24305 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24306 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24307 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24308 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24309 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24310 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24311 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24312 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24313 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24314 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24315 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24316 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24317 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24318 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
24319
24320 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24321 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24322 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24323 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24324 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24325 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24326 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24327 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24328 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24329 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24330 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24331 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24332 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24333 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24334 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24335 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024336 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024337 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
24338
24339 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24340 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24341 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24342 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24343 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24344 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24345 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24346 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24347 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24348 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24349 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24350 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24351 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24352 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24353 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24354 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024355 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024356 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
24357
24358 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24359 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24360 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24361 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24362 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24363 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24364 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24365 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24366 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24367 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24368 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24369 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24370 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24371 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24372 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24373 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024374 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024375 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
24376
24377 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24378 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24379 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24380 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24381 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24382 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24383 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24384 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24385 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24386 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24387 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24388 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24389 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24390 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24391 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24392 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024393 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024394 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
24395
24396 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24397 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24398 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24399 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24400 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24401 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24402 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24403 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24404 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24405 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24406 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24407 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24408 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24409 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24410 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24411 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24412 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024413 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024414 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
24415
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024416 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24417 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24418 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24419 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24420 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24421 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24422 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24423 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24424 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24425 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24426 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24427 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24428 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24429 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24430 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24431 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24432 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
24433
24434 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24435 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24436 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24437 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24438 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24439 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24440 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24441 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24442 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24443 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24444 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24445 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24446 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24447 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24448 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24449 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
24450 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024451 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024452 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
24453
24454 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24455 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24456 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24457 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24458 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24459 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24460 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24461 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24462 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24463 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24464 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24465 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24466 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24467 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24468 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24469 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
24470 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024471 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024472 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
24473
24474 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24475 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24476 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24477 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24478 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24479 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24480 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24481 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24482 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24483 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24484 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24485 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24486 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24487 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24488 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24489 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
24490 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024491 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024492 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
24493
Rohit Kumara5077932017-09-10 22:05:05 +053024494 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24495 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24496 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24497 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24498 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24499 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24500 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24501 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24502 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24503 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24504 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24505 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24506 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24507 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24508 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24509 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24510 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024511 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053024512 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
24513
24514 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24515 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24516 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24517 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24518 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24519 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24520 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24521 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24522 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24523 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24524 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24525 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24526 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24527 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24528 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24529 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24530 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
24531
24532 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24533 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24534 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24535 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24536 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24537 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24538 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24539 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24540 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24541 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24542 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24543 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24544 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24545 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24546 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24547 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
24548 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024549 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053024550 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
24551
24552 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24553 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24554 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24555 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24556 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24557 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24558 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24559 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24560 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24561 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24562 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24563 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24564 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24565 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24566 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24567 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
24568 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024569 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053024570 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
24571
24572 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24573 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24574 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24575 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24576 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24577 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24578 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24579 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24580 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24581 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24582 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24583 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24584 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24585 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24586 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24587 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
24588 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024589 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053024590 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
24591
Karthikeyan Manic3700752019-03-11 18:33:53 -070024592 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24593 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24594 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24595 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24596 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24597 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24598 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24599 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24600 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24601 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24602 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24603 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24604 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24605 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24606 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24607 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24608 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
24609 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
24610 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
24611
24612 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24613 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24614 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24615 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24616 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24617 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24618 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24619 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24620 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24621 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24622 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24623 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24624 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24625 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24626 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24627 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24628 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
24629
24630 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24631 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24632 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24633 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24634 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24635 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24636 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24637 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24638 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24639 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24640 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24641 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24642 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24643 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24644 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24645 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
24646 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
24647 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
24648 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
24649
24650 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24651 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24652 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24653 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24654 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24655 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24656 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24657 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24658 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24659 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24660 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24661 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24662 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24663 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24664 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24665 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
24666 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
24667 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
24668 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
24669
24670 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24671 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24672 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24673 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24674 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24675 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24676 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24677 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24678 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24679 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24680 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24681 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24682 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24683 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24684 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24685 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
24686 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
24687 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
24688 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
24689
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024690 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
24691 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
24692 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
24693 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
24694 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024695 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024696 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024697 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24698 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24699 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24700 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
24701 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024702 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
24703 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024704 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24705 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24706 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
24707 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
24708 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24709 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24710 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024711 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024712 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
24713 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
24714 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024715 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024716 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
24717 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
24718 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024719 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024720 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
24721 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024722 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
24723 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
24724 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024725 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024726 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
24727 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
24728 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024729 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024730 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024731 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
24732 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
24733 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024734 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
24735 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
24736 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024737 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
24738 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24739 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
24740 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
24741 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24742 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24743 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24744 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024745 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024746 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24747 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24748 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024749 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024750 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
24751 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
24752 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024753 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024754 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024755 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24756 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24757 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024758 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024759 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024760 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24761 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24762 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24763 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24764 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024765 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24766 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
24767 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
24768 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024769 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024770 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024771
24772 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24773 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24774 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24775 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24776 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24777 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24778 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24779 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24780 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24781 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24782 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24783 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24784 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24785 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24786 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24787 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024788 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024789 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24790 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24791 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24792 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024793 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24794 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24795 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24796 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024797 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24798 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24799 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24800 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24801 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024802 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024803 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24804 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24805 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24806 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24807 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24808 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024809 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24810 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024811
24812 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24813 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24814 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24815 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24816 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24817 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24818 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24819 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24820 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24821 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24822 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24823 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24824 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24825 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24826 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24827 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024828 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024829 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24830 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24831 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24832 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024833 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24834 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24835 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24836 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024837 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24838 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24839 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24840 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24841 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024842 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024843 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24844 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24845 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24846 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24847 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24848 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024849 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24850 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024851
24852 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24853 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24854 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24855 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24856 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24857 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24858 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24859 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24860 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24861 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24862 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24863 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24864 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24865 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24866 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24867 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024868 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024869 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24870 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24871 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24872 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024873 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24874 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24875 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24876 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024877 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24878 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24879 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24880 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24881 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024882 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024883 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24884 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24885 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24886 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24887 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24888 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024889 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24890 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024891
24892 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24893 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24894 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24895 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24896 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24897 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24898 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24899 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24900 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24901 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24902 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24903 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24904 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24905 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24906 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24907 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024908 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024909 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24910 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24911 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24912 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024913 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24914 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24915 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24916 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024917 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24918 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24919 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24920 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24921 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024922 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024923 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24924 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24925 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24926 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24927 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24928 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024929 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24930 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024931
24932 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24933 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24934 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24935 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24936 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24937 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24938 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24939 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24940 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24941 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24942 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24943 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24944 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24945 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24946 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24947 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024948 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024949 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24950 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24951 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24952 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024953 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24954 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24955 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24956 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024957 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24958 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24959 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
24960 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
24961 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080024962 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024963 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
24964 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
24965 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
24966 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
24967 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
24968 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024969 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24970 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024971
24972 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
24973 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
24974 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
24975 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
24976 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
24977 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
24978 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
24979 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
24980 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
24981 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
24982 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
24983 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
24984 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
24985 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
24986 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
24987 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053024988 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053024989 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
24990 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
24991 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
24992 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070024993 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
24994 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
24995 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
24996 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024997 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
24998 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
24999 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25000 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25001 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025002 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025003 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25004 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25005 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25006 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25007 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25008 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025009 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25010 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025011
25012 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25013 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25014 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25015 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25016 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25017 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25018 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25019 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25020 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25021 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25022 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25023 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25024 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25025 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25026 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25027 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025028 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025029 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25030 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25031 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25032 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025033 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25034 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25035 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25036 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025037 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25038 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25039 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25040 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25041 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025042 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025043 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25044 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25045 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25046 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25047 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25048 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025049 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25050 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025051
Samyak Jain810e42a2019-01-07 17:53:34 +053025052 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025053 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25054 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25055 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25056 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25057 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25058 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25059 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25060 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025061 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25062 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25063 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25064 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025065 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25066 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25067 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25068 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025069 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25070 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25071 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25072 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25073 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025074 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025075 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25076 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25077 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25078 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25079 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25080 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025081 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25082 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025083 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025084
Laxminath Kasam38070be2017-08-17 18:21:59 +053025085 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25086 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25087 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25088 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25089 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25090 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25091 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25092 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025093 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25094 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25095 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25096 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25097 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25098 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025099 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025100
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025101 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25102 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25103 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25104 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025105 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025106 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025107 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25108 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25109 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25110 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25111 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25112 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25113 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25114 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25115 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25116 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25117 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25118 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25119 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25120 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25121 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25122 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025123 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25124 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25125 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25126 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025127 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25128 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25129 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25130 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025131 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25132 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25133 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25134 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25135 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025136 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025137 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25138 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25139 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25140 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25141 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25142 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025143 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25144 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025145 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025146
Derek Chen07c6d1c2018-07-05 10:39:25 -070025147 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25148 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25149 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25150 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25151 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25152 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25153 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25154 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25155 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25156 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25157 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25158 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25159 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25160 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25161 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25162 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25163 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25164 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25165 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25166 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25167 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25168 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025169 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25170 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25171 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25172 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053025173 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25174 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25175 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25176 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25177 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025178 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053025179 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25180 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25181 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25182 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25183 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25184 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
25185 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25186 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025187 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025188
Surendar Karkac1cde372018-08-14 18:56:24 +053025189 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025190 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025191 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25192 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025193 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025194 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25195 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25196 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25197 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25198 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025199 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025200 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25201 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025202 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025203
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025204 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25205 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25206 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25207 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25208 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25209 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025210 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025211
Asish Bhattacharya34504582017-08-08 12:55:01 +053025212 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25213 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25214 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25215 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25216 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25217 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25218 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25219 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25220 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25221 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25222 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25223 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25224 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25225 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25226 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25227 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25228 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025229 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25230 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25231 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25232 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25233 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025234 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025235 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25236 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25237 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25238 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25239 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25240 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025241 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25242 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025243 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025244
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025245 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25246 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25247 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25248 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25249 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25250 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025251 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025252
25253 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25254 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25255 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25256 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25257 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25258 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025259 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025260 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25261 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025262
25263 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25264 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25265 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25266 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25267 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25268 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025269 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025270 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25271 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025272
25273 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25274 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25275 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25276 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25277 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25278 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025279 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025280 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25281 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025282
25283 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25284 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25285 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25286 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25287 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25288 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025289 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025290 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25291 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025292
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025293 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25294 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25295 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25296 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25297 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25298 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25299 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25300 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25301 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25302 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25303 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25304 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25305 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25306 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25307 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25308 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25309 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
25310 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
25311
25312 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25313 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25314 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25315 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25316 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25317 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25318 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25319 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25320 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25321 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25322 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25323 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25324 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25325 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25326 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25327 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25328 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
25329 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
25330
25331 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25332 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25333 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25334 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25335 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25336 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25337 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25338 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25339 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25340 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25341 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25342 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25343 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25344 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25345 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25346 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25347 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
25348
25349 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25350 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25351 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25352 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25353 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25354 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25355 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25356 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25357 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25358 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25359 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25360 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25361 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25362 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25363 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25364 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25365 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
25366
25367 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25368 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25369 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025370 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025371 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25372 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25373 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025374 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25375 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025376 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
25377 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025378 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025379 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25380 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025381 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025382 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25383 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25384 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025385 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25386 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025387 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25388 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25389 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25390
25391 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
25392 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
25393 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025394 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025395 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
25396 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
25397 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025398 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
25399 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025400 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
25401 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025402 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025403 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
25404 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25405 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
25406 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
25407 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
25408 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
25409 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
25410 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
25411 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025412 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025413 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025414 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
25415 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
25416 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
25417 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025418 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025419 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025420 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
25421 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025422
25423 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25424 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25425 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25426 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25427 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25428 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25429 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25430 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25431 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25432 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25433 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25434 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25435 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25436 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25437 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25438 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025439 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025440 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
25441
25442 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25443 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25444 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25445 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25446 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25447 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25448 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25449 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25450 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25451 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25452 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25453 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25454 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25455 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25456 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25457 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025458 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025459 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
25460
25461 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25462 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25463 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25464 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25465 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25466 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25467 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25468 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25469 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25470 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25471 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25472 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25473 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25474 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25475 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25476 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25477 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
25478
25479 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25480 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25481 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25482 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25483 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25484 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25485 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25486 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25487 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25488 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25489 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25490 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25491 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25492 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25493 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25494 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25495 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
25496
Rohit Kumara5077932017-09-10 22:05:05 +053025497 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25498 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25499 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25500 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25501 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25502 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25503 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25504 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25505 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25506 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25507 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25508 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25509 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25510 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25511 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25512 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25513 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
25514
Karthikeyan Manic3700752019-03-11 18:33:53 -070025515 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25516 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25517 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25518 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25519 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25520 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25521 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25522 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25523 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25524 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25525 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25526 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25527 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25528 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25529 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25530 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25531 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
25532
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025533 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
25534 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25535 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25536 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25537 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25538 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
25539
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025540 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
25541 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25542 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25543 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
25544
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025545 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070025546 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25547 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025548 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25549 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25550 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25551 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25552 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
25553
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025554 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
25555 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025556 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25557 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25558 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25559 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
25560
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025561 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
25562 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025563 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25564 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25565 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25566 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
25567
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025568 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
25569 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025570 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25571 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25572 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25573 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
25574
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080025575 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
25576 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080025577 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25578 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25579 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25580 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
25581
Karthikeyan Mani57550082018-05-03 18:43:58 -070025582 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
25583 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25584 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
25585 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25586 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25587 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
25588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025589 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
25590 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25591 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25592 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25593 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025594 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
25595
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025596 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
25597 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25598 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25599 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25600 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25601 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
25602
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025603 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
25604 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025605 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25606 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25607 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25608 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
25609
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025610 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
25611 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025612 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25613 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25614 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25615 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
25616
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025617 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
25618 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025619 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25620 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25621 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25622 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
25623
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025624 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
25625 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025626 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25627 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25628 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25629 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
25630
Rohit Kumara5077932017-09-10 22:05:05 +053025631 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
25632 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053025633 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25634 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25635 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25636 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
25637
Karthikeyan Manic3700752019-03-11 18:33:53 -070025638 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
25639 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25640 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25641 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25642 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25643 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
25644
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025645 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
25646 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25647 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25648 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25649 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25650 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
25651 {"HDMI", NULL, "HDMI_DL_HL"},
25652
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025653 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070025654 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25655 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025656 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25657 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25658 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080025659 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025660 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
25661
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025662 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070025663 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25664 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025665 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25666 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25667 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25668 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25669 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
25670
25671 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
25672 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25673 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25674 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25675 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25676 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
25677
25678 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
25679 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25680 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25681 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25682 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25683 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
25684
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025685 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070025686 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25687 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025688 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25689 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25690 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25691 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25692 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
25693
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025694 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070025695 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25696 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025697 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25698 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25699 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25700 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
25701
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025702 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070025703 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25704 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025705 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25706 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25707 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25708 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
25709
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025710 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025711 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
25712 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25713 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
25714 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
25715 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25716 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25717 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25718 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
25719
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025720 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025721 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
25722 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25723 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
25724 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
25725 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25726 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25727 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25728 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
25729
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025730 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025731 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
25732 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25733 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
25734 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
25735 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25736 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25737 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25738 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
25739
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025740 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025741 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
25742 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
25743 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
25744 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
25745 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
25746 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25747 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25748 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
25749
Karthikeyan Manic3700752019-03-11 18:33:53 -070025750 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
25751 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
25752 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25753 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25754 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
25755
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025756 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25757 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
25758
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025759 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25760 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25761 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
25762
25763 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
25764 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
25765 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
25766
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025767 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25768 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25769 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25770 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025771 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025772 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070025773 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025774 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025775 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
25776 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
25777
25778 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25779 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25780 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25781 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25782 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
25783 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25784 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
25785 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
25786 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
25787 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070025788 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
25789 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025790
25791 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25792 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25793 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25794 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25795
25796 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25797 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25798 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25799 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25800
25801 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25802 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25803 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25804 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25805
25806 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25807 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25808 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25809 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25810
25811 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25812 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25813 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25814 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25815
25816 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25817 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25818 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25819 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25820
25821 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25822 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25823 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25824 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25825
Laxminath Kasam38070be2017-08-17 18:21:59 +053025826 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25827 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25828 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25829 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25830 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
25831 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25832 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
25833 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
25834 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
25835 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070025836 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
25837 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070025838
25839 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25840 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25841 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25842 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25843
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025844 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25845 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25846 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25847 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25848
25849 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25850 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25851 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25852 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25853
25854 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25855 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25856 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25857 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25858
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025859 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25860 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25861 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25862 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25863
25864 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25865 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25866 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25867 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080025868
25869 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25870 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25871 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25872 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25873 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25874 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25875 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25876 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
25877
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025878 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
25879 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
25880 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
25881 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
25882 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
25883 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
25884 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
25885 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025886 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025887 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025888 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
25889 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
25890 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025891 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
25892 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025893
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025894 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
25895 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
25896 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
25897 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
25898 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
25899 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
25900 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
25901 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
25902 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
25903 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
25904 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
25905 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
25906 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
25907 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
25908 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025909 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025910 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025911 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025912 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
25913 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
25914 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
25915 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
25916 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
25917 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053025918 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
25919 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025920 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025921 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
25922
25923 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
25924 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
25925 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
25926 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
25927 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
25928 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
25929 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
25930 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
25931 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
25932 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
25933 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
25934 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
25935 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
25936 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
25937 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025938 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025939 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025940 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
25941 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
25942 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
25943 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
25944 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
25945 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053025946 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
25947 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070025948 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025949 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
25950
25951 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
25952 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
25953 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
25954 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
25955 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
25956 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
25957 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
25958 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
25959 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
25960 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
25961 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
25962 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
25963 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
25964 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025965 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025966 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025967 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053025968 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025969 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
25970
25971 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
25972 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
25973 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
25974 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
25975 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
25976 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
25977 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
25978 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
25979 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
25980 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080025981 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
25982 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025983 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
25984 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
25985 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
25986 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
25987 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053025988 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
25989 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
25990 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053025991 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
25992 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
25993 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025994 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
25995 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
25996 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
25997 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
25998 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
25999 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26000 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26001 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026002 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26003 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026004 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026005 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026006 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026007 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
26008
26009 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26010 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26011 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26012 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26013 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26014 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26015 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26016 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026017 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26018 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026019 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026020 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026021 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026022 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
26023
26024
26025 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26026 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26027 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26028 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26029 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26030 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26031 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26032 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026033 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26034 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026035 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026036 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026037 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026038 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
26039
26040
26041 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26042 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26043 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26044 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26045 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26046 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26047 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26048 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026049 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26050 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026051 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026052 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026053 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026054 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
26055
26056 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26057 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26058 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26059 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26060 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26061 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26062 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26063 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026064 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26065 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026066 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026067 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026068 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026069 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
26070
26071 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26072 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26073 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26074 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26075 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26076 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026077 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26078 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026079 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026080 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026081 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026082 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
26083
26084 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26085 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26086 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26087 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26088 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26089 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026090 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26091 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026092 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026093 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026094 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026095 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
26096
26097 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26098 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26099 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26100 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26101 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26102 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026103 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26104 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026105 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026106 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026107 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026108 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
26109
26110
26111 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
26112 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
26113 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
26114 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
26115 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
26116 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
26117 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
26118 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
26119 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
26120 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
26121 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026122 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026123 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026124 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
26125 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
26126 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
26127 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
26128 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
26129 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
26130
26131 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
26132 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
26133 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
26134 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
26135 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
26136 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
26137 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
26138 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
26139 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
26140 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
26141 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
26142 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080026143 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
26144 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026145 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026146 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026147 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026148 {"MI2S_RX", NULL, "MI2S_DL_HL"},
26149 {"MI2S_UL_HL", NULL, "MI2S_TX"},
26150 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
26151 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
26152
26153 /* connect to INT4_MI2S_DL_HL since same pcm_id */
26154 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
26155 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
26156 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
26157 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
26158 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
26159 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
26160 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
26161 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
26162 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
26163 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
26164
26165 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
26166 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026167 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
26168 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026169 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
26170 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026171 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
26172 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
26173 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
26174 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
26175 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
26176 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
26177 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
26178 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
26179 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
26180 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
26181
26182 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
26183 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
26184 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
26185 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
26186 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
26187 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
26188 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
26189 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
26190 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
26191 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
26192 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
26193 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
26194 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
26195 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
26196 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
26197 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026198 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026199 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
26200 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
26201 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
26202 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026203 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026204 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
26205 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
26206 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
26207 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
26208 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
26209 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
26210 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
26211 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026212 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026213 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
26214 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
26215 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
26216 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026217 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026218 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
26219 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
26220 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
26221 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
26222 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
26223 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
26224 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
26225 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026226 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
26227 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
26228 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
26229 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
26230 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
26231 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
26232 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
26233 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026234
26235 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26236 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26237 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26238 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26239 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26240 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26241 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26242 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26243 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26244 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26245 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26246 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26247 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26248 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26249 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26250 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026251 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26252 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26253 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26254 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026255 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26256 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26257 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26258 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026259 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
26260
26261 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26262 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26263 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26264 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26265 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26266 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26267 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26268 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26269 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26270 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26271 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26272 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26273 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26274 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26275 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26276 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026277 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26278 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26279 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26280 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026281 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26282 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26283 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26284 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026285 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
26286
26287 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26288 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26289 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26290 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26291 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26292 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26293 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26294 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26295 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26296 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26297 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26298 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26299 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26300 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26301 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26302 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026303 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26304 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26305 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26306 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026307 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26308 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26309 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26310 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026311 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
26312
26313 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26314 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26315 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26316 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26317 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26318 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26319 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26320 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26321 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26322 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26323 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26324 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26325 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26326 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26327 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26328 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026329 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26330 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26331 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26332 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026333 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26334 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26335 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26336 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026337 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
26338
26339 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26340 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26341 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26342 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26343 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26344 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26345 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26346 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26347 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26348 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26349 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26350 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26351 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26352 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26353 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26354 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026355 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26356 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26357 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26358 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026359 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26360 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26361 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26362 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026363 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
26364
26365 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26366 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26367 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26368 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26369 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26370 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26371 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26372 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26373 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26374 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26375 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26376 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26377 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26378 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26379 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26380 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026381 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26382 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26383 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26384 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026385 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26386 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26387 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26388 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026389 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
26390
26391 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26392 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26393 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26394 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26395 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26396 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26397 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26398 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26399 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26400 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26401 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26402 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26403 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26404 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26405 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26406 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026407 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26408 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26409 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26410 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026411 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26412 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26413 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26414 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026415 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
26416
26417 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26418 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26419 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26420 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26421 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26422 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26423 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26424 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26425 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26426 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26427 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26428 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26429 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26430 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26431 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26432 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026433 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26434 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26435 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26436 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026437 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26438 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26439 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26440 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026441 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
26442
Derek Chenfdcc0982018-10-02 15:14:03 -070026443 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
26444 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
26445
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026446 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26447 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26448 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26449 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26450 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26451 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26452 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26453 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26454 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26455 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26456 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26457 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26458 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26459 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26460 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26461 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026462 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26463 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26464 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26465 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026466 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26467 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26468 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26469 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026470 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
26471
26472 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26473 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26474 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26475 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26476 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26477 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26478 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26479 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26480 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26481 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26482 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26483 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26484 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26485 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26486 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26487 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026488 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26489 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26490 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26491 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026492 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26493 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26494 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26495 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026496 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
26497
26498 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26499 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26500 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26501 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26502 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26503 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26504 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26505 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26506 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26507 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26508 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26509 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26510 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26511 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26512 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26513 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026514 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26515 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26516 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26517 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026518 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26519 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26520 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26521 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026522 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
26523
26524 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26525 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26526 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26527 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26528 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26529 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26530 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26531 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26532 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26533 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26534 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26535 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26536 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26537 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26538 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26539 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026540 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26541 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26542 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26543 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026544 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26545 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26546 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26547 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026548 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
26549
26550 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26551 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26552 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26553 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26554 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26555 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26556 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26557 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26558 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26559 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26560 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26561 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26562 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26563 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26564 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26565 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026566 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26567 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26568 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26569 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026570 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26571 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26572 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26573 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026574 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
26575
26576 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26577 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26578 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26579 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26580 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26581 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26582 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26583 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26584 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26585 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26586 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26587 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26588 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26589 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26590 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26591 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026592 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26593 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26594 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26595 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026596 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26597 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26598 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26599 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026600 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
26601
26602 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26603 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26604 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26605 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26606 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26607 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26608 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26609 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26610 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26611 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26612 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26613 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26614 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26615 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26616 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26617 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026618 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26619 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26620 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26621 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026622 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26623 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26624 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26625 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026626 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
26627
26628 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26629 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26630 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26631 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26632 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26633 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26634 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26635 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26636 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26637 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26638 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26639 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26640 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26641 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26642 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26643 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026644 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26645 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26646 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26647 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026648 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26649 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26650 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26651 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026652 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
26653
Derek Chenb9048cb2019-03-07 14:54:13 -050026654 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
26655 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
26656
Rohit Kumara5077932017-09-10 22:05:05 +053026657 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26658 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26659 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26660 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26661 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26662 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26663 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26664 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26665 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26666 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26667 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26668 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26669 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26670 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26671 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26672 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26673 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26674 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26675 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26676 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026677 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26678 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26679 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26680 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053026681 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053026682
26683 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26684 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26685 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26686 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26687 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26688 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26689 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26690 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26691 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26692 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26693 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26694 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26695 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26696 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26697 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26698 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26699 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26700 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26701 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26702 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026703 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26704 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26705 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26706 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053026707 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053026708
26709 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26710 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26711 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26712 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26713 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26714 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26715 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26716 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26717 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26718 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26719 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26720 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26721 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26722 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26723 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26724 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26725 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26726 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26727 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26728 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026729 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26730 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26731 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26732 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053026733 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053026734
26735 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26736 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26737 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26738 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26739 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26740 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26741 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26742 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26743 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26744 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26745 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26746 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26747 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26748 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26749 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26750 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26751 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26752 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26753 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26754 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026755 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26756 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26757 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26758 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053026759 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053026760
Karthikeyan Manic3700752019-03-11 18:33:53 -070026761 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26762 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26763 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26764 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26765 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26766 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26767 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26768 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26769 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26770 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26771 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26772 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26773 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26774 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26775 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26776 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26777 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26778 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26779 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26780 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26781 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
26782
26783 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26784 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26785 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26786 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26787 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26788 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26789 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26790 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26791 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26792 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26793 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26794 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26795 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26796 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26797 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26798 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26799 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26800 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26801 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26802 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26803 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
26804
26805 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26806 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26807 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26808 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26809 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26810 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26811 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26812 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26813 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26814 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26815 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26816 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26817 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26818 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26819 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26820 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26821 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26822 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26823 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26824 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26825 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
26826
26827 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26828 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26829 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26830 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26831 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26832 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26833 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26834 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26835 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26836 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26837 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26838 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26839 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26840 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26841 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26842 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26843 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26844 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26845 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26846 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
26847 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
26848
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026849 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26850 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26851 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26852 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026853 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026854 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026855 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26856 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26857 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26858 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026859 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026860 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26861 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
26862
26863 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26864 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26865 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26866 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026867 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026868 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026869 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26870 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26871 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026872 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026873 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26874 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26875 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
26876
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053026877 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26878 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080026879 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080026880 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080026881 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
26882
26883 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26884 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080026885 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080026886 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053026887
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026888 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26889 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26890 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26891 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26892 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026893 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026894 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26895 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26896 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26897 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026898 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026899 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026900 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
26901 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26902 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26903 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26904 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026905 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026906 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026907 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26908 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
26909 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26910 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26911 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
26912 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26913 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
26914 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
26915 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
26916 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
26917
26918
26919 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26920 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26921 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26922 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26923 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053026924 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026925 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026926 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
26927
26928 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26929 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26930 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026931 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026932 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
26933
26934 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26935 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26936 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26937 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
26938
26939 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26940 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
26941 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26942 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
26943
Rohit Kumara5077932017-09-10 22:05:05 +053026944 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26945 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
26946 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26947 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
26948
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026949 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26950 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26951 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26952 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26953 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26954 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26955 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26956 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026957 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026958 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026959 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
26960 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26961 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26962 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26963 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26964 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26965 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26966 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26967 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26968 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26969 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
26970
26971 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26972 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26973 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26974 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26975 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26976 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26977 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26978 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26979 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26980 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26981 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26982 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
26983
26984 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
26985 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26986 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
26987 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26988 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26989 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
26990 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
26991 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26992 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
26993 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26994 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026995 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026996 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
26997
kunleizdf5a00a2017-11-27 15:27:36 +080026998 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26999 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027000 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027001
27002 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27003 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027004 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027005
27006 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27007 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027008 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
27009
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027010 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
27011 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027012 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27013 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27014 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27015 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
27016
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027017 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
27018 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027019 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27020 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27021 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27022 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
27023
27024 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27025 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27026 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27027 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
27028 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27029 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27030 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
27031 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
27032 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27033 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
27034 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
27035 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
27036 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
27037
27038 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27039 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27040 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27041 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27042 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027043 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027044 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27045 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27046 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27047 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27048 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27049 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27050 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27051 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
27052
27053 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27054 {"HDMI", NULL, "HDMI_RX Port Mixer"},
27055
27056 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27057 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
27058
Karthikeyan Mani57550082018-05-03 18:43:58 -070027059 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
27060 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
27061
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027062 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27063 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
27064
27065 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27066 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27067 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
27068
27069 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27070 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27071 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27072 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027073 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027074 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027075 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27076 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27077 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27078 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027079 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027080 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
27081
27082 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27083 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27084 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27085 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027086 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027087 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027088 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27089 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27090 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027091 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027092 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
27093
27094 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27095 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27096 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27097 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027098 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027099 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027100 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27101 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27102 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
27103
27104 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27105 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27106 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27107 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027108 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027109 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027110 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27111 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27112 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27113 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27114 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
27115
Rohit Kumara5077932017-09-10 22:05:05 +053027116 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27117 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27118 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27119 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27120 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027121 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027122 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27123 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27124 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
27125
Karthikeyan Manic3700752019-03-11 18:33:53 -070027126 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27127 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27128 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27129 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27130 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
27131 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27132 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27133 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
27134
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027135 /* Backend Enablement */
27136
27137 {"BE_OUT", NULL, "PRI_I2S_RX"},
27138 {"BE_OUT", NULL, "SEC_I2S_RX"},
27139 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
27140 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
27141 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
27142 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27143 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
27144 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
27145 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
27146 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
27147 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027148 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027149 {"BE_OUT", NULL, "USB_AUDIO_RX"},
27150 {"BE_OUT", NULL, "HDMI"},
27151 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070027152 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020027153 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
27154 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027155 {"BE_OUT", NULL, "MI2S_RX"},
27156 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
27157 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027158 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027159 {"BE_OUT", NULL, "TERT_MI2S_RX"},
27160 {"BE_OUT", NULL, "SEC_MI2S_RX"},
27161 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
27162 {"BE_OUT", NULL, "PRI_MI2S_RX"},
27163 {"BE_OUT", NULL, "INT0_MI2S_RX"},
27164 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027165 {"BE_OUT", NULL, "INT2_MI2S_RX"},
27166 {"BE_OUT", NULL, "INT3_MI2S_RX"},
27167 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027168 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
27169 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
27170 {"BE_OUT", NULL, "INT_FM_RX"},
27171 {"BE_OUT", NULL, "PCM_RX"},
27172 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27173 {"BE_OUT", NULL, "AUX_PCM_RX"},
27174 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
27175 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
27176 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027177 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027178 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027179 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
27180 {"BE_OUT", NULL, "INT_FM_RX"},
27181 {"BE_OUT", NULL, "PCM_RX"},
27182 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27183 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
27184 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
27185 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
27186 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
27187 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
27188 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
27189 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
27190 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
27191 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
27192 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027193 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027194 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
27195 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
27196 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
27197 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
27198 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
27199 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
27200 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
27201 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
27202 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027203 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027204 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
27205 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
27206 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
27207 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027208 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
27209 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
27210 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
27211 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027212 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
27213 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053027214 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
27215 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
27216 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
27217 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
27218 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
27219 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
27220 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
27221 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027222
27223 {"PRI_I2S_TX", NULL, "BE_IN"},
27224 {"MI2S_TX", NULL, "BE_IN"},
27225 {"QUAT_MI2S_TX", NULL, "BE_IN"},
27226 {"QUIN_MI2S_TX", NULL, "BE_IN"},
27227 {"PRI_MI2S_TX", NULL, "BE_IN"},
27228 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027229 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027230 {"INT2_MI2S_TX", NULL, "BE_IN"},
27231 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027232 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027233 {"INT5_MI2S_TX", NULL, "BE_IN"},
27234 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027235 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027236 {"SLIMBUS_0_TX", NULL, "BE_IN" },
27237 {"SLIMBUS_1_TX", NULL, "BE_IN" },
27238 {"SLIMBUS_3_TX", NULL, "BE_IN" },
27239 {"SLIMBUS_4_TX", NULL, "BE_IN" },
27240 {"SLIMBUS_5_TX", NULL, "BE_IN" },
27241 {"SLIMBUS_6_TX", NULL, "BE_IN" },
27242 {"SLIMBUS_7_TX", NULL, "BE_IN" },
27243 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053027244 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027245 {"USB_AUDIO_TX", NULL, "BE_IN" },
27246 {"INT_BT_SCO_TX", NULL, "BE_IN"},
27247 {"INT_FM_TX", NULL, "BE_IN"},
27248 {"PCM_TX", NULL, "BE_IN"},
27249 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27250 {"BE_OUT", NULL, "STUB_RX"},
27251 {"STUB_TX", NULL, "BE_IN"},
27252 {"STUB_1_TX", NULL, "BE_IN"},
27253 {"BE_OUT", NULL, "AUX_PCM_RX"},
27254 {"AUX_PCM_TX", NULL, "BE_IN"},
27255 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
27256 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
27257 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053027258 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027259 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027260 {"INCALL_RECORD_TX", NULL, "BE_IN"},
27261 {"INCALL_RECORD_RX", NULL, "BE_IN"},
27262 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
27263 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027264 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
27265 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027266 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
27267 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
27268 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
27269 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
27270 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027271 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
27272 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027273 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
27274 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
27275 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
27276 {"PRI_TDM_TX_0", NULL, "BE_IN"},
27277 {"PRI_TDM_TX_1", NULL, "BE_IN"},
27278 {"PRI_TDM_TX_2", NULL, "BE_IN"},
27279 {"PRI_TDM_TX_3", NULL, "BE_IN"},
27280 {"SEC_TDM_TX_0", NULL, "BE_IN"},
27281 {"SEC_TDM_TX_1", NULL, "BE_IN"},
27282 {"SEC_TDM_TX_2", NULL, "BE_IN"},
27283 {"SEC_TDM_TX_3", NULL, "BE_IN"},
27284 {"TERT_TDM_TX_0", NULL, "BE_IN"},
27285 {"TERT_TDM_TX_1", NULL, "BE_IN"},
27286 {"TERT_TDM_TX_2", NULL, "BE_IN"},
27287 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027288 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027289 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
27290 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
27291 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
27292 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027293 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053027294 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053027295 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
27296 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
27297 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
27298 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027299 {"SEN_TDM_TX_0", NULL, "BE_IN"},
27300 {"SEN_TDM_TX_1", NULL, "BE_IN"},
27301 {"SEN_TDM_TX_2", NULL, "BE_IN"},
27302 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027303 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
27304 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
27305 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
27306 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
27307 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027308 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053027309 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
27310 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
27311 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
27312 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
27313 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
27314 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020027315 {"PRI_SPDIF_TX", NULL, "BE_IN"},
27316 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027317};
27318
27319static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
27320 struct snd_pcm_hw_params *params)
27321{
27322 struct snd_soc_pcm_runtime *rtd = substream->private_data;
27323 unsigned int be_id = rtd->dai_link->id;
27324
27325 if (be_id >= MSM_BACKEND_DAI_MAX) {
27326 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
27327 return -EINVAL;
27328 }
27329
27330 mutex_lock(&routing_lock);
27331 msm_bedais[be_id].sample_rate = params_rate(params);
27332 msm_bedais[be_id].channel = params_channels(params);
27333 msm_bedais[be_id].format = params_format(params);
27334 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
27335 __func__, msm_bedais[be_id].sample_rate,
27336 msm_bedais[be_id].format, be_id);
27337 mutex_unlock(&routing_lock);
27338 return 0;
27339}
27340
27341static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
27342{
27343 struct snd_soc_pcm_runtime *rtd = substream->private_data;
27344 unsigned int be_id = rtd->dai_link->id;
27345 int i, session_type, path_type, topology;
27346 struct msm_pcm_routing_bdai_data *bedai;
27347 struct msm_pcm_routing_fdai_data *fdai;
27348
27349 pr_debug("%s: substream->pcm->id:%s\n",
27350 __func__, substream->pcm->id);
27351
27352 if (be_id >= MSM_BACKEND_DAI_MAX) {
27353 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
27354 return -EINVAL;
27355 }
27356
27357 bedai = &msm_bedais[be_id];
27358 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
27359 0 : 1);
27360 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
27361 path_type = ADM_PATH_PLAYBACK;
27362 else
27363 path_type = ADM_PATH_LIVE_REC;
27364
27365 mutex_lock(&routing_lock);
27366 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
27367 if (!is_mm_lsm_fe_id(i))
27368 continue;
27369 fdai = &fe_dai_map[i][session_type];
27370 if (fdai->strm_id != INVALID_SESSION) {
27371 int idx;
27372 int port_id;
27373 unsigned long copp =
27374 session_copp_map[i][session_type][be_id];
27375 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
27376 if (test_bit(idx, &copp))
27377 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070027378
27379 if (idx >= MAX_COPPS_PER_PORT) {
27380 pr_debug("%s: copp idx is invalid, exiting\n",
27381 __func__);
27382 continue;
27383 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027384 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053027385 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027386 topology = adm_get_topology_for_port_copp_idx(port_id,
27387 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070027388 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053027389 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027390 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
27391 __func__, copp, i, session_type, be_id,
27392 topology);
27393 clear_bit(idx,
27394 &session_copp_map[i][session_type][be_id]);
27395 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027396 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053027397 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027398 topology);
27399 }
27400 }
27401
27402 bedai->active = 0;
27403 bedai->sample_rate = 0;
27404 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027405 mutex_unlock(&routing_lock);
27406
27407 return 0;
27408}
27409
27410static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
27411{
27412 struct snd_soc_pcm_runtime *rtd = substream->private_data;
27413 unsigned int be_id = rtd->dai_link->id;
27414 int i, path_type, topology;
27415 int session_type = INVALID_SESSION;
27416 struct msm_pcm_routing_bdai_data *bedai;
27417 u32 channels, sample_rate;
27418 uint16_t bits_per_sample = 16, voc_path_type;
27419 struct msm_pcm_routing_fdai_data *fdai;
27420 u32 session_id;
27421 struct media_format_info voc_be_media_format;
27422 bool is_lsm;
27423
27424 pr_debug("%s: substream->pcm->id:%s\n",
27425 __func__, substream->pcm->id);
27426
27427 if (be_id >= MSM_BACKEND_DAI_MAX) {
27428 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
27429 return -EINVAL;
27430 }
27431
27432 bedai = &msm_bedais[be_id];
27433
27434 mutex_lock(&routing_lock);
27435 if (bedai->active == 1)
27436 goto done; /* Ignore prepare if back-end already active */
27437
27438 /* AFE port is not active at this point. However, still
27439 * go ahead setting active flag under the notion that
27440 * QDSP6 is able to handle ADM starting before AFE port
27441 * is started.
27442 */
27443 bedai->active = 1;
27444
27445 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
27446 if (!(is_mm_lsm_fe_id(i) &&
27447 route_check_fe_id_adm_support(i)))
27448 continue;
27449
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027450 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
27451 SESSION_TYPE_RX : SESSION_TYPE_TX;
27452 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027453 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027454 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027455 path_type = ADM_PATH_COMPRESSED_RX;
27456 else
27457 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027458 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027459 if ((fdai->passthr_mode != LEGACY_PCM) &&
27460 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020027461 path_type = ADM_PATH_COMPRESSED_TX;
27462 else
27463 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027464 }
27465
27466 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
27467 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027468 if (fdai->strm_id != INVALID_SESSION) {
27469 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053027470 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027471
27472 if (session_type == SESSION_TYPE_TX &&
27473 fdai->be_srate &&
27474 (fdai->be_srate != bedai->sample_rate)) {
27475 pr_debug("%s: flush strm %d diff BE rates\n",
27476 __func__,
27477 fdai->strm_id);
27478
27479 if (fdai->event_info.event_func)
27480 fdai->event_info.event_func(
27481 MSM_PCM_RT_EVT_BUF_RECFG,
27482 fdai->event_info.priv_data);
27483 fdai->be_srate = 0; /* might not need it */
27484 }
27485 bits_per_sample = msm_routing_get_bit_width(
27486 bedai->format);
27487
27488 app_type =
27489 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
27490 if (app_type && is_lsm) {
27491 app_type_idx =
27492 msm_pcm_routing_get_lsm_app_type_idx(app_type);
27493 sample_rate =
27494 fe_dai_app_type_cfg[i][session_type][be_id]
27495 .sample_rate;
27496 bits_per_sample =
27497 lsm_app_type_cfg[app_type_idx].bit_width;
27498 } else if (app_type) {
27499 app_type_idx =
27500 msm_pcm_routing_get_app_type_idx(app_type);
27501 sample_rate =
27502 fe_dai_app_type_cfg[i][session_type]
27503 [be_id].sample_rate;
27504 bits_per_sample =
27505 app_type_cfg[app_type_idx].bit_width;
27506 } else
27507 sample_rate = bedai->sample_rate;
27508 /*
27509 * check if ADM needs to be configured with different
27510 * channel mapping than backend
27511 */
27512 if (!bedai->adm_override_ch)
27513 channels = bedai->channel;
27514 else
27515 channels = bedai->adm_override_ch;
27516 acdb_dev_id =
27517 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
27518 topology = msm_routing_get_adm_topology(i, session_type,
27519 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020027520
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027521 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
27522 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
27523 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020027524 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
27525
Surendar Karkae7507512018-07-20 15:46:54 +053027526 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027527 sample_rate, channels, topology,
27528 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053027529 app_type, acdb_dev_id,
27530 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027531 if ((copp_idx < 0) ||
27532 (copp_idx >= MAX_COPPS_PER_PORT)) {
27533 pr_err("%s: adm open failed\n", __func__);
27534 mutex_unlock(&routing_lock);
27535 return -EINVAL;
27536 }
27537 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
27538 __func__, i, session_type, be_id);
27539 set_bit(copp_idx,
27540 &session_copp_map[i][session_type][be_id]);
27541
27542 if (msm_is_resample_needed(
27543 sample_rate,
27544 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053027545 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027546 bedai->sample_rate);
27547
27548 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027549 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027550 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027551 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053027552 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027553 topology, channels);
27554 }
27555 }
27556
27557 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
27558 session_id = msm_pcm_routing_get_voc_sessionid(i);
27559 if (session_id) {
27560 pr_debug("%s voice session_id: 0x%x\n", __func__,
27561 session_id);
27562
27563 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
27564 voc_path_type = RX_PATH;
27565 else
27566 voc_path_type = TX_PATH;
27567
27568 voc_set_route_flag(session_id, voc_path_type, 1);
27569
27570 memset(&voc_be_media_format, 0,
27571 sizeof(struct media_format_info));
27572
27573 voc_be_media_format.port_id = bedai->port_id;
27574 voc_be_media_format.num_channels = bedai->channel;
27575 voc_be_media_format.sample_rate = bedai->sample_rate;
27576 voc_be_media_format.bits_per_sample = bedai->format;
27577 /* Defaulting this to 1 for voice call usecases */
27578 voc_be_media_format.channel_mapping[0] = 1;
27579
27580 voc_set_device_config(session_id, voc_path_type,
27581 &voc_be_media_format);
27582
27583 if (voc_get_route_flag(session_id, RX_PATH) &&
27584 voc_get_route_flag(session_id, TX_PATH))
27585 voc_enable_device(session_id);
27586 }
27587 }
27588
27589 /* Check if backend is an external ec ref port and set as needed */
27590 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
27591
27592 memset(&voc_be_media_format, 0,
27593 sizeof(struct media_format_info));
27594
27595 /* Get format info for ec ref port from msm_bedais[] */
27596 voc_be_media_format.port_id = bedai->port_id;
27597 voc_be_media_format.num_channels = bedai->channel;
27598 voc_be_media_format.bits_per_sample = bedai->format;
27599 voc_be_media_format.sample_rate = bedai->sample_rate;
27600 /* Defaulting this to 1 for voice call usecases */
27601 voc_be_media_format.channel_mapping[0] = 1;
27602 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
27603 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
27604 __func__, voc_be_media_format.port_id,
27605 voc_be_media_format.num_channels,
27606 voc_be_media_format.bits_per_sample,
27607 voc_be_media_format.sample_rate);
27608 }
27609
27610done:
27611 mutex_unlock(&routing_lock);
27612
27613 return 0;
27614}
27615
27616static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
27617 int fe_id)
27618{
27619 int index, topo_id, be_idx;
27620 unsigned long pp_config = 0;
27621 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027622 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027623 bool compr_passthr_mode = true;
27624
27625 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
27626
27627 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
27628 pr_err("%s: Device pp params on invalid port %d\n",
27629 __func__, port_id);
27630 return -EINVAL;
27631 }
27632
27633 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
27634 if (port_id == msm_bedais[be_idx].port_id)
27635 break;
27636 }
27637
27638 if (be_idx >= MSM_BACKEND_DAI_MAX) {
27639 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
27640 return -EINVAL;
27641 }
27642
27643 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
27644 if (msm_bedais_pp_params[index].port_id == port_id)
27645 break;
27646 }
27647 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
27648 pr_err("%s: Invalid backend pp params index %d\n",
27649 __func__, index);
27650 return -EINVAL;
27651 }
27652
27653 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
27654 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
27655 pr_err("%s: Invalid passthrough topology 0x%x\n",
27656 __func__, topo_id);
27657 return -EINVAL;
27658 }
27659
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027660 session_type =
27661 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
27662 SESSION_TYPE_RX : SESSION_TYPE_TX;
27663
27664 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
27665 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027666 compr_passthr_mode = false;
27667
27668 pp_config = msm_bedais_pp_params[index].pp_params_config;
27669 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
27670 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
27671 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
27672 mute_on = msm_bedais_pp_params[index].mute_on;
27673 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
27674 adm_send_compressed_device_mute(port_id,
27675 copp_idx,
27676 mute_on);
27677 }
27678 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
27679 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
27680 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
27681 &pp_config);
27682 latency = msm_bedais_pp_params[index].latency;
27683 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
27684 adm_send_compressed_device_latency(port_id,
27685 copp_idx,
27686 latency);
27687 }
27688 return 0;
27689}
27690
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070027691static uint32_t msm_routing_get_topology(size_t data_size, void *data)
27692{
27693 uint32_t topology = NULL_COPP_TOPOLOGY;
27694 void *cal_info = NULL;
27695 uint32_t size = 0;
27696
27697 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053027698 if (data_size < sizeof(struct audio_cal_type_basic) +
27699 sizeof(struct audio_cal_info_adm_top)) {
27700 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
27701 goto done;
27702 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070027703 size = data_size - sizeof(struct audio_cal_type_basic);
27704 cal_info = kzalloc(size, GFP_KERNEL);
27705
27706 if (!cal_info)
27707 goto done;
27708
27709 memcpy(cal_info,
27710 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
27711
27712 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
27713 kfree(cal_info);
27714 cal_info = NULL;
27715
27716done:
27717 pr_debug("%s: Using topology %d\n", __func__, topology);
27718
27719 return topology;
27720}
27721
27722static void msm_routing_load_topology(size_t data_size, void *data)
27723{
27724 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053027725 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070027726
27727 topology_id = msm_routing_get_topology(data_size, data);
27728 if (topology_id != NULL_COPP_TOPOLOGY)
27729 ret = q6core_load_unload_topo_modules(topology_id,
27730 CORE_LOAD_TOPOLOGY);
27731 if (ret < 0)
27732 pr_debug("%s %d load topology failed\n",
27733 __func__, topology_id);
27734
27735}
27736
27737static void msm_routing_unload_topology(uint32_t topology_id)
27738{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053027739 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070027740
27741 if (topology_id != NULL_COPP_TOPOLOGY)
27742 ret = q6core_load_unload_topo_modules(topology_id,
27743 CORE_UNLOAD_TOPOLOGY);
27744 if (ret < 0)
27745 pr_debug("%s %d unload topology failed\n",
27746 __func__, topology_id);
27747
27748}
27749
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027750static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
27751 struct snd_ctl_elem_value *ucontrol)
27752{
27753 int pp_id = ucontrol->value.integer.value[0];
27754 int port_id = 0;
27755 int index, be_idx, i, topo_id, idx;
27756 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027757 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027758 bool compr_passthr_mode = true;
27759
27760 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
27761
27762 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
27763 port_id = msm_bedais[be_idx].port_id;
27764 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
27765 break;
27766 }
27767
27768 if (be_idx >= MSM_BACKEND_DAI_MAX) {
27769 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
27770 return -EINVAL;
27771 }
27772
27773 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
27774 if (msm_bedais_pp_params[index].port_id == port_id)
27775 break;
27776 }
27777 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
27778 pr_err("%s: Invalid pp params backend index %d\n",
27779 __func__, index);
27780 return -EINVAL;
27781 }
27782
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027783 session_type =
27784 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
27785 SESSION_TYPE_RX : SESSION_TYPE_TX;
27786
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027787 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
27788 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027789 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
27790 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027791 compr_passthr_mode = false;
27792
27793 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
27794 unsigned long copp =
27795 session_copp_map[i]
27796 [SESSION_TYPE_RX][be_idx];
27797 if (!test_bit(idx, &copp))
27798 continue;
27799 topo_id = adm_get_topology_for_port_copp_idx(port_id,
27800 idx);
27801 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
27802 continue;
27803 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
27804 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053027805 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027806 switch (pp_id) {
27807 case ADM_PP_PARAM_MUTE_ID:
27808 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
27809 mute = ucontrol->value.integer.value[1] ? true : false;
27810 msm_bedais_pp_params[index].mute_on = mute;
27811 set_bit(ADM_PP_PARAM_MUTE_BIT,
27812 &msm_bedais_pp_params[index].pp_params_config);
27813 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
27814 adm_send_compressed_device_mute(port_id,
27815 idx, mute);
27816 break;
27817 case ADM_PP_PARAM_LATENCY_ID:
27818 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
27819 msm_bedais_pp_params[index].latency =
27820 ucontrol->value.integer.value[1];
27821 set_bit(ADM_PP_PARAM_LATENCY_BIT,
27822 &msm_bedais_pp_params[index].pp_params_config);
27823 latency = msm_bedais_pp_params[index].latency =
27824 ucontrol->value.integer.value[1];
27825 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
27826 adm_send_compressed_device_latency(port_id,
27827 idx, latency);
27828 break;
27829 default:
27830 pr_info("%s, device pp param %d not supported\n",
27831 __func__, pp_id);
27832 break;
27833 }
27834 }
27835 }
27836 return 0;
27837}
27838
27839static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
27840 struct snd_ctl_elem_value *ucontrol)
27841{
27842 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
27843 return 0;
27844}
27845
27846static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
27847 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
27848 0, 3, msm_routing_get_device_pp_params_mixer,
27849 msm_routing_put_device_pp_params_mixer),
27850};
27851
27852static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
27853 struct snd_ctl_elem_value *ucontrol)
27854{
27855 ucontrol->value.integer.value[0] =
27856 core_get_license_status(ASM_MEDIA_FMT_APTX);
27857 pr_debug("%s: status %ld\n", __func__,
27858 ucontrol->value.integer.value[0]);
27859 return 0;
27860}
27861
27862static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
27863 struct snd_ctl_elem_value *ucontrol)
27864{
27865 int32_t status = 0;
27866
27867 status = core_set_license(ucontrol->value.integer.value[0],
27868 APTX_CLASSIC_DEC_LICENSE_ID);
27869 pr_debug("%s: status %d\n", __func__, status);
27870 return status;
27871}
27872
27873static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
27874 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
27875 0xFFFF, 0, msm_aptx_dec_license_control_get,
27876 msm_aptx_dec_license_control_put),
27877};
27878
Rohit kumar63ffaa72019-02-01 18:05:33 +053027879static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
27880 struct snd_ctl_elem_value *ucontrol)
27881{
27882 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
27883 uint32_t be_idx = ucontrol->value.integer.value[0];
27884 int i;
27885
27886 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
27887 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
27888 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
27889 pr_err("%s: Invalid channel map %d\n",
27890 __func__, channel_map[i]);
27891 return -EINVAL;
27892 }
27893 }
27894 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
27895
27896 return 0;
27897}
27898
27899static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
27900 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
27901 MSM_BACKEND_DAI_MAX, 0,
27902 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
27903 msm_routing_put_port_chmap_mixer),
27904};
27905
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027906static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
27907 struct snd_ctl_elem_info *uinfo)
27908{
27909 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
27910 uinfo->count = sizeof(be_dai_name_table);
27911 return 0;
27912}
27913
27914static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
27915 unsigned int __user *bytes,
27916 unsigned int size)
27917{
27918 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053027919 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027920
27921 if (size < sizeof(be_dai_name_table)) {
27922 pr_err("%s: invalid size %d requested, returning\n",
27923 __func__, size);
27924 ret = -EINVAL;
27925 goto done;
27926 }
27927
27928 /*
27929 * Fill be_dai_name_table from msm_bedais table to reduce code changes
27930 * needed when adding new backends
27931 */
27932 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
27933 be_dai_name_table[i].be_id = i;
27934 strlcpy(be_dai_name_table[i].be_name,
27935 msm_bedais[i].name,
27936 LPASS_BE_NAME_MAX_LENGTH);
27937 }
27938
27939 ret = copy_to_user(bytes, &be_dai_name_table,
27940 sizeof(be_dai_name_table));
27941 if (ret) {
27942 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
27943 ret = -EFAULT;
27944 }
27945
27946done:
27947 return ret;
27948}
27949
27950static const struct snd_kcontrol_new
27951 msm_routing_be_dai_name_table_mixer_controls[] = {
27952 {
27953 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
27954 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
27955 .info = msm_routing_be_dai_name_table_info,
27956 .name = "Backend DAI Name Table",
27957 .tlv.c = snd_soc_bytes_tlv_callback,
27958 .private_value = (unsigned long) &(struct soc_bytes_ext) {
27959 .max = sizeof(be_dai_name_table),
27960 .get = msm_routing_be_dai_name_table_tlv_get,
27961 }
27962 },
27963};
27964
27965static int msm_routing_stereo_channel_reverse_control_get(
27966 struct snd_kcontrol *kcontrol,
27967 struct snd_ctl_elem_value *ucontrol)
27968{
27969 ucontrol->value.integer.value[0] = swap_ch;
27970 pr_debug("%s: Swap channel value: %ld\n", __func__,
27971 ucontrol->value.integer.value[0]);
27972 return 0;
27973}
27974
27975static int msm_routing_stereo_channel_reverse_control_put(
27976 struct snd_kcontrol *kcontrol,
27977 struct snd_ctl_elem_value *ucontrol)
27978{
27979 int i, idx, be_index, port_id;
27980 int ret = 0;
27981 unsigned long copp;
27982
27983 pr_debug("%s Swap channel value:%ld\n", __func__,
27984 ucontrol->value.integer.value[0]);
27985
27986 swap_ch = ucontrol->value.integer.value[0];
27987
27988 mutex_lock(&routing_lock);
27989 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
27990 port_id = msm_bedais[be_index].port_id;
27991 if (!msm_bedais[be_index].active)
27992 continue;
27993
27994 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
27995 MSM_FRONTEND_DAI_MM_SIZE) {
27996 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
27997 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
27998 if (!test_bit(idx, &copp))
27999 continue;
28000
28001 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
28002 __func__, port_id, idx);
28003 ret = adm_swap_speaker_channels(
28004 port_id, idx,
28005 msm_bedais[be_index].sample_rate,
28006 swap_ch);
28007 if (ret) {
28008 pr_err("%s:Swap_channel failed, err=%d\n",
28009 __func__, ret);
28010 goto done;
28011 }
28012 }
28013 }
28014 }
28015done:
28016 mutex_unlock(&routing_lock);
28017 return ret;
28018}
28019
28020static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
28021 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
28022 1, 0, msm_routing_stereo_channel_reverse_control_get,
28023 msm_routing_stereo_channel_reverse_control_put),
28024};
28025
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028026static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
28027 struct snd_ctl_elem_info *uinfo)
28028{
28029 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
28030 uinfo->count = 1;
28031 return 0;
28032}
28033
28034static int msm_routing_instance_id_support_put(
28035 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
28036{
28037 bool supported = ucontrol->value.integer.value[0] ? true : false;
28038
28039 q6common_update_instance_id_support(supported);
28040 return 0;
28041}
28042
28043static int msm_routing_instance_id_support_get(
28044 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
28045{
28046 bool supported = false;
28047
28048 supported = q6common_is_instance_id_supported();
28049 ucontrol->value.integer.value[0] = supported ? 1 : 0;
28050
28051 return 0;
28052}
28053
28054static const struct snd_kcontrol_new
28055 msm_routing_feature_support_mixer_controls[] = {
28056 {
28057 .access = SNDRV_CTL_ELEM_ACCESS_READ |
28058 SNDRV_CTL_ELEM_ACCESS_WRITE,
28059 .info = msm_routing_instance_id_support_info,
28060 .name = "Instance ID Support",
28061 .put = msm_routing_instance_id_support_put,
28062 .get = msm_routing_instance_id_support_get,
28063 },
28064};
28065
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028066static const struct snd_pcm_ops msm_routing_pcm_ops = {
28067 .hw_params = msm_pcm_routing_hw_params,
28068 .close = msm_pcm_routing_close,
28069 .prepare = msm_pcm_routing_prepare,
28070};
28071
28072/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080028073static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028074{
Meng Wangee084a02018-09-04 16:11:58 +080028075 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028076 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080028077 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
28078 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080028079 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028080 ARRAY_SIZE(intercon));
28081
Meng Wangee084a02018-09-04 16:11:58 +080028082 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028083
Meng Wangee084a02018-09-04 16:11:58 +080028084 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028085 ARRAY_SIZE(lsm_controls));
28086
Meng Wangee084a02018-09-04 16:11:58 +080028087 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028088 ARRAY_SIZE(aanc_slim_0_rx_mux));
28089
Meng Wangee084a02018-09-04 16:11:58 +080028090 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053028091 ARRAY_SIZE(aanc_noise_level));
28092
Meng Wangee084a02018-09-04 16:11:58 +080028093 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028094 ARRAY_SIZE(msm_voc_session_controls));
28095
Meng Wangee084a02018-09-04 16:11:58 +080028096 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028097 ARRAY_SIZE(app_type_cfg_controls));
28098
Meng Wangee084a02018-09-04 16:11:58 +080028099 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028100 ARRAY_SIZE(lsm_app_type_cfg_controls));
28101
Meng Wangee084a02018-09-04 16:11:58 +080028102 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070028103 ARRAY_SIZE(module_cfg_controls));
28104
Meng Wangee084a02018-09-04 16:11:58 +080028105 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028106 stereo_to_custom_stereo_controls,
28107 ARRAY_SIZE(stereo_to_custom_stereo_controls));
28108
Meng Wangee084a02018-09-04 16:11:58 +080028109 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028110 ARRAY_SIZE(ec_ref_param_controls));
28111
Meng Wangee084a02018-09-04 16:11:58 +080028112 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028113 ARRAY_SIZE(channel_mixer_controls));
28114
Meng Wangee084a02018-09-04 16:11:58 +080028115 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028116
Meng Wangee084a02018-09-04 16:11:58 +080028117 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028118
Meng Wangee084a02018-09-04 16:11:58 +080028119 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028120
Meng Wangee084a02018-09-04 16:11:58 +080028121 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028122 use_ds1_or_ds2_controls,
28123 ARRAY_SIZE(use_ds1_or_ds2_controls));
28124
Meng Wangee084a02018-09-04 16:11:58 +080028125 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028126 device_pp_params_mixer_controls,
28127 ARRAY_SIZE(device_pp_params_mixer_controls));
28128
Meng Wangee084a02018-09-04 16:11:58 +080028129 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028130 msm_routing_be_dai_name_table_mixer_controls,
28131 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
28132
Meng Wangee084a02018-09-04 16:11:58 +080028133 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028134 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080028135 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028136 ARRAY_SIZE(adm_channel_config_controls));
28137
Meng Wangee084a02018-09-04 16:11:58 +080028138 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028139 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080028140 snd_soc_add_component_controls(component,
28141 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028142 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080028143 snd_soc_add_component_controls(
28144 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028145 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053028146 snd_soc_add_component_controls(component,
28147 port_multi_channel_map_mixer_controls,
28148 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028149
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028150 return 0;
28151}
28152
28153int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
28154{
28155 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
28156}
28157
28158void msm_routing_pcm_free(struct snd_pcm *pcm)
28159{
28160 msm_pcm_routing_hwdep_free(pcm);
28161}
28162
Meng Wangee084a02018-09-04 16:11:58 +080028163static struct snd_soc_component_driver msm_soc_routing_component = {
28164 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028165 .ops = &msm_routing_pcm_ops,
28166 .probe = msm_routing_probe,
28167 .pcm_new = msm_routing_pcm_new,
28168 .pcm_free = msm_routing_pcm_free,
28169};
28170
28171static int msm_routing_pcm_probe(struct platform_device *pdev)
28172{
28173
28174 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080028175 return snd_soc_register_component(&pdev->dev,
28176 &msm_soc_routing_component,
28177 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028178}
28179
28180static int msm_routing_pcm_remove(struct platform_device *pdev)
28181{
Meng Wangee084a02018-09-04 16:11:58 +080028182 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028183 return 0;
28184}
28185
28186static const struct of_device_id msm_pcm_routing_dt_match[] = {
28187 {.compatible = "qcom,msm-pcm-routing"},
28188 {}
28189};
28190MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
28191
28192static struct platform_driver msm_routing_pcm_driver = {
28193 .driver = {
28194 .name = "msm-pcm-routing",
28195 .owner = THIS_MODULE,
28196 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080028197 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028198 },
28199 .probe = msm_routing_pcm_probe,
28200 .remove = msm_routing_pcm_remove,
28201};
28202
28203int msm_routing_check_backend_enabled(int fedai_id)
28204{
28205 int i;
28206
28207 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
28208 /* bad ID assigned in machine driver */
28209 pr_err("%s: bad MM ID\n", __func__);
28210 return 0;
28211 }
28212 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
28213 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
28214 return msm_bedais[i].active;
28215 }
28216 return 0;
28217}
28218
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028219static int get_cal_type_index(int32_t cal_type)
28220{
28221 int ret = -EINVAL;
28222
28223 switch (cal_type) {
28224 case ADM_TOPOLOGY_CAL_TYPE:
28225 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
28226 break;
28227 case ADM_LSM_TOPOLOGY_CAL_TYPE:
28228 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
28229 break;
28230 default:
28231 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
28232 }
28233 return ret;
28234}
28235
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028236static int msm_routing_set_cal(int32_t cal_type,
28237 size_t data_size, void *data)
28238{
28239 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028240 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028241 pr_debug("%s\n", __func__);
28242
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028243 cal_index = get_cal_type_index(cal_type);
28244 if (cal_index < 0) {
28245 pr_err("%s: Could not get cal index %d\n",
28246 __func__, cal_index);
28247 ret = -EINVAL;
28248 goto done;
28249 }
28250
28251 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028252 if (ret < 0) {
28253 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
28254 __func__, ret, cal_type);
28255 ret = -EINVAL;
28256 goto done;
28257 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028258 /* Pre-load if it is ADM topology */
28259 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
28260 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
28261 msm_routing_load_topology(data_size, data);
28262 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028263done:
28264 return ret;
28265}
28266
28267static void msm_routing_delete_cal_data(void)
28268{
28269 pr_debug("%s\n", __func__);
28270
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028271 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028272}
28273
28274static int msm_routing_init_cal_data(void)
28275{
28276 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028277 struct cal_type_info cal_type_info[] = {
28278 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028279 {NULL, NULL, NULL,
28280 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028281 {NULL, NULL, cal_utils_match_buf_num} },
28282
28283 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
28284 {NULL, NULL, NULL,
28285 msm_routing_set_cal, NULL, NULL} },
28286 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028287 };
28288 pr_debug("%s\n", __func__);
28289
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028290 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
28291 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028292 if (ret < 0) {
28293 pr_err("%s: could not create cal type!\n",
28294 __func__);
28295 ret = -EINVAL;
28296 goto err;
28297 }
28298
28299 return ret;
28300err:
28301 msm_routing_delete_cal_data();
28302 return ret;
28303}
28304
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053028305int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028306{
28307 mutex_init(&routing_lock);
28308 if (msm_routing_init_cal_data())
28309 pr_err("%s: could not init cal data!\n", __func__);
28310
28311 afe_set_routing_callback(
28312 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
28313
28314 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
28315 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
28316
28317 return platform_driver_register(&msm_routing_pcm_driver);
28318}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028319
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053028320void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028321{
28322 msm_routing_delete_cal_data();
28323 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
28324 mutex_destroy(&routing_lock);
28325 platform_driver_unregister(&msm_routing_pcm_driver);
28326}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028327
28328MODULE_DESCRIPTION("MSM routing platform driver");
28329MODULE_LICENSE("GPL v2");