blob: c98a0da52bc10b749ee75eb1346c32c63244f9e9 [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} },
Derek Chenb097d922019-07-31 17:28:02 -0700762 /* MULTIMEDIA22 */
763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530765 /* MULTIMEDIA26 */
766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
768 /* MULTIMEDIA27 */
769 {{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 /* MULTIMEDIA28 */
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} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530774 /* MULTIMEDIA29 */
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} },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +0530777 /* MULTIMEDIA30 */
778 {{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 /* VOIP */
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 /* AFE_RX */
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 /* AFE_TX */
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 /* VOICE_STUB */
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 /* DTMF_RX */
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 /* QCHAT */
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 /* VOLTE_STUB */
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 /* LSM1 */
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 /* LSM2 */
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 /* LSM3 */
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 /* LSM4 */
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 /* LSM5 */
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 /* LSM6 */
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 /* LSM7 */
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 /* LSM8 */
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 /* VOICE2_STUB */
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 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530829 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
830 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530831 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530832 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
833 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530834};
835
836static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
837 [MSM_BACKEND_DAI_MAX];
838static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
839static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
840static struct msm_pcm_stream_app_type_cfg
841 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
842
843static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
844
Florian Pfister522073c2018-09-26 15:39:15 +0200845/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530846void msm_pcm_routing_get_bedai_info(int be_idx,
847 struct msm_pcm_routing_bdai_data *be_dai)
848{
849 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
850 memcpy(be_dai, &msm_bedais[be_idx],
851 sizeof(struct msm_pcm_routing_bdai_data));
852}
853
Florian Pfister522073c2018-09-26 15:39:15 +0200854/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530855void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
856 struct msm_pcm_routing_fdai_data *fe_dai)
857{
858 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
859 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
860 sizeof(struct msm_pcm_routing_fdai_data));
861}
862
863void msm_pcm_routing_acquire_lock(void)
864{
865 mutex_lock(&routing_lock);
866}
867
868void msm_pcm_routing_release_lock(void)
869{
870 mutex_unlock(&routing_lock);
871}
872
873static int msm_pcm_routing_get_app_type_idx(int app_type)
874{
875 int idx;
876
877 pr_debug("%s: app_type: %d\n", __func__, app_type);
878 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
879 if (app_type_cfg[idx].app_type == app_type)
880 return idx;
881 }
882 pr_info("%s: App type not available, fallback to default\n", __func__);
883 return 0;
884}
885
886static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
887{
888 int idx;
889
890 pr_debug("%s: app_type: %d\n", __func__, app_type);
891 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
892 if (lsm_app_type_cfg[idx].app_type == app_type)
893 return idx;
894 }
895 pr_debug("%s: App type not available, fallback to default\n", __func__);
896 return 0;
897}
898
Surendar Karkae7507512018-07-20 15:46:54 +0530899static int get_port_id(int port_id)
900{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530901 int ret = port_id;
902
903 if (port_id == AFE_LOOPBACK_TX) {
904 /*
905 * Return afe_loopback_tx_port_id if set. Else return
906 * msm_ec_ref_port_id to maintain backward compatibility.
907 */
908 if (afe_loopback_tx_port_id != -1)
909 ret = afe_loopback_tx_port_id;
910 else
911 ret = msm_ec_ref_port_id;
912 }
913
914 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530915}
916
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530917static bool is_mm_lsm_fe_id(int fe_id)
918{
919 bool rc = true;
920
921 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
922 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
923 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
924 rc = false;
925 }
926 return rc;
927}
928
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700929/*
930 * msm_pcm_routing_send_chmix_cfg:
931 * send the channel mixer command to mix the input channels
932 * into output channels.
933 *
934 * @fe_id: front end id
935 * @ip_channel_cnt: input channel count
936 * @op_channel_cnt: output channel count
937 * @ch_wght_coeff: channel weight co-efficients for channel mixing
938 * @session_type: indicates session is of type TX or RX
939 * @stream_type: indicates either Audio or Listen stream type
940 */
941int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
942 int op_channel_cnt, int *ch_wght_coeff,
943 int session_type, int stream_type)
944{
945
946 int rc = 0, idx = 0;
947 int be_index = 0, port_id;
948 unsigned int session_id = 0;
949
950 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
951 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
952 stream_type);
953 if (!is_mm_lsm_fe_id(fe_id)) {
954 /* bad ID assigned in machine driver */
955 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
956 return -EINVAL;
957 }
958
959 if (ch_wght_coeff == NULL) {
960 pr_err("%s: Null channel weightage coefficients passed\n",
961 __func__);
962 return -EINVAL;
963 }
964
965 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
966 port_id = msm_bedais[be_index].port_id;
967 if (!msm_bedais[be_index].active ||
968 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
969 continue;
970
971 session_id = fe_dai_map[fe_id][session_type].strm_id;
972
973 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
974 unsigned long copp =
975 session_copp_map[fe_id][session_type][be_index];
976 if (!test_bit(idx, &copp))
977 continue;
978 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
979 session_id, ip_channel_cnt,
980 op_channel_cnt, ch_wght_coeff,
981 session_type, stream_type);
982 if (rc < 0)
983 pr_err("%s: err setting channel mix config\n",
984 __func__);
985 }
986 }
987
988 return 0;
989}
990EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
991
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530992/**
993 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
994 * setting before use case start.
995 *
996 * @fe_id: frontend idx
997 * @type: stream direction type
998 * @params: parameters of channel mixer setting
999 *
1000 * Return 0 for success
1001 */
1002int msm_pcm_routing_set_channel_mixer_cfg(
1003 int fe_id, int type,
1004 struct msm_pcm_channel_mixer *params)
1005{
1006 int i, j = 0;
1007
1008 channel_mixer_v2[fe_id][type].enable = params->enable;
1009 channel_mixer_v2[fe_id][type].rule = params->rule;
1010 channel_mixer_v2[fe_id][type].input_channel =
1011 params->input_channel;
1012 channel_mixer_v2[fe_id][type].output_channel =
1013 params->output_channel;
1014 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
1015
1016 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1017 channel_mixer_v2[fe_id][type].in_ch_map[i] =
1018 params->in_ch_map[i];
1019 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1020 channel_mixer_v2[fe_id][type].out_ch_map[i] =
1021 params->out_ch_map[i];
1022
1023 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1024 for (j = 0; j < ADM_MAX_CHANNELS; j++)
1025 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
1026 params->channel_weight[i][j];
1027
1028 channel_mixer_v2[fe_id][type].override_in_ch_map =
1029 params->override_in_ch_map;
1030 channel_mixer_v2[fe_id][type].override_out_ch_map =
1031 params->override_out_ch_map;
1032
1033 return 0;
1034}
1035EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
1036
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301037int msm_pcm_routing_reg_stream_app_type_cfg(
1038 int fedai_id, int session_type, int be_id,
1039 struct msm_pcm_stream_app_type_cfg *cfg_data)
1040{
1041 int ret = 0;
1042
1043 if (cfg_data == NULL) {
1044 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1045 ret = -EINVAL;
1046 goto done;
1047 }
1048
1049 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1050 __func__, fedai_id, session_type, be_id,
1051 cfg_data->app_type, cfg_data->acdb_dev_id,
1052 cfg_data->sample_rate);
1053
1054 if (!is_mm_lsm_fe_id(fedai_id)) {
1055 pr_err("%s: Invalid machine driver ID %d\n",
1056 __func__, fedai_id);
1057 ret = -EINVAL;
1058 goto done;
1059 }
1060 if (session_type != SESSION_TYPE_RX &&
1061 session_type != SESSION_TYPE_TX) {
1062 pr_err("%s: Invalid session type %d\n",
1063 __func__, session_type);
1064 ret = -EINVAL;
1065 goto done;
1066 }
1067 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1068 pr_err("%s: Received out of bounds be_id %d\n",
1069 __func__, be_id);
1070 ret = -EINVAL;
1071 goto done;
1072 }
1073
1074 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1075
1076 /*
1077 * Store the BE ID of the configuration information set as the latest so
1078 * the get mixer control knows what to return.
1079 */
1080 last_be_id_configured[fedai_id][session_type] = be_id;
1081
1082done:
1083 return ret;
1084}
1085EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1086
1087/**
1088 * msm_pcm_routing_get_stream_app_type_cfg
1089 *
1090 * Receives fedai_id, session_type, be_id, and populates app_type,
1091 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1092 * -EINVAL and does not alter passed values.
1093 *
1094 * fedai_id - Passed value, front end ID for which app type config is wanted
1095 * session_type - Passed value, session type for which app type config
1096 * is wanted
1097 * be_id - Returned value, back end device id the app type config data is for
1098 * cfg_data - Returned value, configuration data used by app type config
1099 */
1100int msm_pcm_routing_get_stream_app_type_cfg(
1101 int fedai_id, int session_type, int *bedai_id,
1102 struct msm_pcm_stream_app_type_cfg *cfg_data)
1103{
1104 int be_id;
1105 int ret = 0;
1106
1107 if (bedai_id == NULL) {
1108 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1109 ret = -EINVAL;
1110 goto done;
1111 } else if (cfg_data == NULL) {
1112 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1113 ret = -EINVAL;
1114 goto done;
1115 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1116 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1117 ret = -EINVAL;
1118 goto done;
1119 } else if (session_type != SESSION_TYPE_RX &&
1120 session_type != SESSION_TYPE_TX) {
1121 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1122 ret = -EINVAL;
1123 goto done;
1124 }
1125
1126 be_id = last_be_id_configured[fedai_id][session_type];
1127 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1128 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1129 ret = -EINVAL;
1130 goto done;
1131 }
1132
1133 *bedai_id = be_id;
1134 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1135 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1136 __func__, fedai_id, session_type, *bedai_id,
1137 cfg_data->app_type, cfg_data->acdb_dev_id,
1138 cfg_data->sample_rate);
1139done:
1140 return ret;
1141}
1142EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1143
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301144static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1145 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301146{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301147 struct list_head *ptr, *next;
1148 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301149 pr_debug("%s\n", __func__);
1150
1151 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301152 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301153
1154 cal_block = list_entry(ptr,
1155 struct cal_block_data, list);
1156
Vikram Panduranga770b8382017-09-27 12:17:36 -07001157 if (cal_utils_is_cal_stale(cal_block))
1158 continue;
1159
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301160 if (((struct audio_cal_info_adm_top *)cal_block
1161 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301162 return cal_block;
1163 }
1164 }
1165 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1166 return NULL;
1167}
1168
1169static struct cal_block_data *msm_routing_find_topology(int path,
1170 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301171 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001172 int cal_index,
1173 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301174{
1175 struct list_head *ptr, *next;
1176 struct cal_block_data *cal_block = NULL;
1177 struct audio_cal_info_adm_top *cal_info;
1178
1179 pr_debug("%s\n", __func__);
1180
1181 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301182 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301183
1184 cal_block = list_entry(ptr,
1185 struct cal_block_data, list);
1186
Vikram Panduranga770b8382017-09-27 12:17:36 -07001187 if (cal_utils_is_cal_stale(cal_block))
1188 continue;
1189
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301190 cal_info = (struct audio_cal_info_adm_top *)
1191 cal_block->cal_info;
1192 if ((cal_info->path == path) &&
1193 (cal_info->app_type == app_type) &&
1194 (cal_info->acdb_id == acdb_id)) {
1195 return cal_block;
1196 }
1197 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001198 pr_debug("%s: Can't find topology for path %d, app %d, "
1199 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1200 exact ? "fail" : "defaulting to search by path");
1201 return exact ? NULL : msm_routing_find_topology_by_path(path,
1202 cal_index);
1203}
1204
1205static int msm_routing_find_topology_on_index(int session_type, int app_type,
1206 int acdb_dev_id, int idx,
1207 bool exact)
1208{
1209 int topology = -EINVAL;
1210 struct cal_block_data *cal_block = NULL;
1211
1212 mutex_lock(&cal_data[idx]->lock);
1213 cal_block = msm_routing_find_topology(session_type, app_type,
1214 acdb_dev_id, idx, exact);
1215 if (cal_block != NULL) {
1216 topology = ((struct audio_cal_info_adm_top *)
1217 cal_block->cal_info)->topology;
1218 }
1219 mutex_unlock(&cal_data[idx]->lock);
1220 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301221}
1222
Vikram Panduranga770b8382017-09-27 12:17:36 -07001223/*
1224 * Retrieving cal_block will mark cal_block as stale.
1225 * Hence it cannot be reused or resent unless the flag
1226 * is reset.
1227 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301228static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1229 int be_id)
1230{
1231 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301232 int app_type = 0, acdb_dev_id = 0;
1233
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301234 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1235 __func__, fedai_id, session_type, be_id);
1236
1237 if (cal_data == NULL)
1238 goto done;
1239
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301240 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1241 acdb_dev_id =
1242 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1243
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001244 pr_debug("%s: Check for exact LSM topology\n", __func__);
1245 topology = msm_routing_find_topology_on_index(session_type,
1246 app_type,
1247 acdb_dev_id,
1248 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1249 true /*exact*/);
1250 if (topology < 0) {
1251 pr_debug("%s: Check for compatible topology\n", __func__);
1252 topology = msm_routing_find_topology_on_index(session_type,
1253 app_type,
1254 acdb_dev_id,
1255 ADM_TOPOLOGY_CAL_TYPE_IDX,
1256 false /*exact*/);
1257 if (topology < 0)
1258 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301259 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301260done:
1261 pr_debug("%s: Using topology %d\n", __func__, topology);
1262 return topology;
1263}
1264
1265static uint8_t is_be_dai_extproc(int be_dai)
1266{
1267 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1268 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1269 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1270 return 1;
1271 else
1272 return 0;
1273}
1274
1275static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1276 int path_type, int perf_mode,
1277 uint32_t passthr_mode)
1278{
1279 int i, port_type, j, num_copps = 0;
1280 struct route_payload payload;
1281
1282 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1283 path_type == ADM_PATH_COMPRESSED_RX) ?
1284 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1285
1286 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1287 if (!is_be_dai_extproc(i) &&
1288 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1289 (msm_bedais[i].active) &&
1290 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301291 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301292 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1293 unsigned long copp =
1294 session_copp_map[fedai_id][sess_type][i];
1295 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301296 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301297 payload.copp_idx[num_copps] = j;
1298 payload.app_type[num_copps] =
1299 fe_dai_app_type_cfg
1300 [fedai_id][sess_type][i]
1301 .app_type;
1302 payload.acdb_dev_id[num_copps] =
1303 fe_dai_app_type_cfg
1304 [fedai_id][sess_type][i]
1305 .acdb_dev_id;
1306 payload.sample_rate[num_copps] =
1307 fe_dai_app_type_cfg
1308 [fedai_id][sess_type][i]
1309 .sample_rate;
1310 num_copps++;
1311 }
1312 }
1313 }
1314 }
1315
1316 if (num_copps) {
1317 payload.num_copps = num_copps;
1318 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1319 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1320 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1321 }
1322}
1323
1324void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1325 int stream_type)
1326{
1327 int i, session_type, path_type, port_type;
1328 u32 mode = 0;
1329
1330 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1331 /* bad ID assigned in machine driver */
1332 pr_err("%s: bad MM ID\n", __func__);
1333 return;
1334 }
1335
1336 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1337 session_type = SESSION_TYPE_RX;
1338 path_type = ADM_PATH_PLAYBACK;
1339 port_type = MSM_AFE_PORT_TYPE_RX;
1340 } else {
1341 session_type = SESSION_TYPE_TX;
1342 path_type = ADM_PATH_LIVE_REC;
1343 port_type = MSM_AFE_PORT_TYPE_TX;
1344 }
1345
1346 mutex_lock(&routing_lock);
1347
1348 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1349 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1350 if (!is_be_dai_extproc(i) &&
1351 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1352 (msm_bedais[i].active) &&
1353 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1354 mode = afe_get_port_type(msm_bedais[i].port_id);
1355 adm_connect_afe_port(mode, dspst_id,
1356 msm_bedais[i].port_id);
1357 break;
1358 }
1359 }
1360 mutex_unlock(&routing_lock);
1361}
1362
1363static bool route_check_fe_id_adm_support(int fe_id)
1364{
1365 bool rc = true;
1366
1367 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1368 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1369 /* fe id is listen while port is set to afe */
1370 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1371 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1372 __func__, fe_id, lsm_port_index);
1373 rc = false;
1374 }
1375 }
1376
1377 return rc;
1378}
1379
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001380/*
1381 * msm_pcm_routing_get_pp_ch_cnt:
1382 * Read the processed channel count
1383 *
1384 * @fe_id: Front end ID
1385 * @session_type: Inidicates RX or TX session type
1386 */
1387int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1388{
1389 struct msm_pcm_stream_app_type_cfg cfg_data;
1390 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301391 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001392
1393 memset(&cfg_data, 0, sizeof(cfg_data));
1394
1395 if (!is_mm_lsm_fe_id(fe_id)) {
1396 pr_err("%s: bad MM ID\n", __func__);
1397 return -EINVAL;
1398 }
1399
1400 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1401 &be_id, &cfg_data);
1402 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301403 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001404 return ret;
1405 }
1406
1407 app_type = cfg_data.app_type;
1408 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1409 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1410}
1411EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1412
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301413int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1414 int dspst_id, int stream_type,
1415 uint32_t passthr_mode)
1416{
1417 int i, j, session_type, path_type, port_type, topology;
1418 int num_copps = 0;
1419 struct route_payload payload;
1420 u32 channels, sample_rate;
1421 u16 bit_width = 16;
1422 bool is_lsm;
1423
1424 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1425 __func__, fe_id, perf_mode, dspst_id,
1426 stream_type, passthr_mode);
1427 if (!is_mm_lsm_fe_id(fe_id)) {
1428 /* bad ID assigned in machine driver */
1429 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1430 return -EINVAL;
1431 }
1432
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301433 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1434 session_type = SESSION_TYPE_RX;
1435 if (passthr_mode != LEGACY_PCM)
1436 path_type = ADM_PATH_COMPRESSED_RX;
1437 else
1438 path_type = ADM_PATH_PLAYBACK;
1439 port_type = MSM_AFE_PORT_TYPE_RX;
1440 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1441 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301442 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301443 path_type = ADM_PATH_COMPRESSED_TX;
1444 else
1445 path_type = ADM_PATH_LIVE_REC;
1446 port_type = MSM_AFE_PORT_TYPE_TX;
1447 } else {
1448 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1449 return -EINVAL;
1450 }
1451
1452 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1453 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1454 mutex_lock(&routing_lock);
1455
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301456 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301457 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1458 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1459 if (!route_check_fe_id_adm_support(fe_id)) {
1460 /* ignore adm open if not supported for fe_id */
1461 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1462 mutex_unlock(&routing_lock);
1463 return 0;
1464 }
1465
1466 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301467 /* re-enable EQ if active */
1468 msm_qti_pp_send_eq_values(fe_id);
1469 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301470 if (!is_be_dai_extproc(i) &&
1471 (afe_get_port_type(msm_bedais[i].port_id) ==
1472 port_type) &&
1473 (msm_bedais[i].active) &&
1474 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1475 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301476 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301477
1478 /*
1479 * check if ADM needs to be configured with different
1480 * channel mapping than backend
1481 */
1482 if (!msm_bedais[i].adm_override_ch)
1483 channels = msm_bedais[i].channel;
1484 else
1485 channels = msm_bedais[i].adm_override_ch;
1486
1487 bit_width = msm_routing_get_bit_width(
1488 msm_bedais[i].format);
1489 app_type =
1490 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1491 if (app_type && is_lsm) {
1492 app_type_idx =
1493 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1494 sample_rate =
1495 fe_dai_app_type_cfg[fe_id][session_type][i]
1496 .sample_rate;
1497 bit_width =
1498 lsm_app_type_cfg[app_type_idx].bit_width;
1499 } else if (app_type) {
1500 app_type_idx =
1501 msm_pcm_routing_get_app_type_idx(
1502 app_type);
1503 sample_rate =
1504 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1505 bit_width =
1506 app_type_cfg[app_type_idx].bit_width;
1507 } else {
1508 sample_rate = msm_bedais[i].sample_rate;
1509 }
1510 acdb_dev_id =
1511 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1512 topology = msm_routing_get_adm_topology(fe_id,
1513 session_type,
1514 i);
1515 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1516 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001517 COMPRESSED_PASSTHROUGH_GEN)
1518 || (passthr_mode ==
1519 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301520 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1521 pr_debug("%s: Before adm open topology %d\n", __func__,
1522 topology);
1523
1524 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301525 adm_open(port_id, path_type, sample_rate,
1526 channels, topology, perf_mode,
1527 bit_width, app_type, acdb_dev_id,
1528 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301529 if ((copp_idx < 0) ||
1530 (copp_idx >= MAX_COPPS_PER_PORT)) {
1531 pr_err("%s:adm open failed coppid:%d\n",
1532 __func__, copp_idx);
1533 mutex_unlock(&routing_lock);
1534 return -EINVAL;
1535 }
1536 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1537 __func__, fe_id, session_type, i);
1538 set_bit(copp_idx,
1539 &session_copp_map[fe_id][session_type][i]);
1540
1541 if (msm_is_resample_needed(
1542 sample_rate,
1543 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301544 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301545 msm_bedais[i].sample_rate);
1546
1547 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1548 unsigned long copp =
1549 session_copp_map[fe_id][session_type][i];
1550 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301551 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301552 payload.copp_idx[num_copps] = j;
1553 payload.app_type[num_copps] =
1554 fe_dai_app_type_cfg
1555 [fe_id][session_type][i]
1556 .app_type;
1557 payload.acdb_dev_id[num_copps] =
1558 fe_dai_app_type_cfg
1559 [fe_id][session_type][i]
1560 .acdb_dev_id;
1561 payload.sample_rate[num_copps] =
1562 fe_dai_app_type_cfg
1563 [fe_id][session_type][i]
1564 .sample_rate;
1565 num_copps++;
1566 }
1567 }
1568 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001569 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301570 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301571 msm_routing_send_device_pp_params(port_id,
1572 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301573 }
1574 }
1575 if (num_copps) {
1576 payload.num_copps = num_copps;
1577 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1578 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1579 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1580 }
1581 mutex_unlock(&routing_lock);
1582 return 0;
1583}
1584
1585static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1586{
1587 u32 session_id;
1588
1589 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301590 case MSM_FRONTEND_DAI_QCHAT:
1591 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1592 break;
1593 case MSM_FRONTEND_DAI_VOIP:
1594 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1595 break;
1596 case MSM_FRONTEND_DAI_VOICEMMODE1:
1597 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1598 break;
1599 case MSM_FRONTEND_DAI_VOICEMMODE2:
1600 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1601 break;
1602 default:
1603 session_id = 0;
1604 }
1605
1606 pr_debug("%s session_id 0x%x", __func__, session_id);
1607 return session_id;
1608}
1609
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301610static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1611 int dspst_id, int stream_type)
1612{
1613 int copp_idx = 0;
1614 int sess_type = 0;
1615 int j = 0, be_id = 0;
1616 int ret = 0;
1617
1618 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1619 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1620 return 0;
1621 }
1622
1623 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1624 sess_type = SESSION_TYPE_RX;
1625 else
1626 sess_type = SESSION_TYPE_TX;
1627
1628 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1629 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1630 __func__, fe_id, sess_type);
1631 return 0;
1632 }
1633
1634 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1635 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1636 channel_mixer_v2[fe_id][sess_type].input_channel;
1637
1638 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1639 __func__, sess_type, fe_id,
1640 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1641 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1642 msm_bedais[be_id].active);
1643
1644 if ((msm_bedais[be_id].active) &&
1645 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1646 unsigned long copp =
1647 session_copp_map[fe_id][sess_type][be_id];
1648 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1649 if (test_bit(j, &copp)) {
1650 copp_idx = j;
1651 break;
1652 }
1653 }
1654
1655 ret = adm_programable_channel_mixer(
1656 msm_bedais[be_id].port_id,
1657 copp_idx, dspst_id, sess_type,
1658 &channel_mixer_v2[fe_id][sess_type], 0);
1659 }
1660
1661 return ret;
1662}
1663
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301664static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1665 int dspst_id, int stream_type)
1666{
1667 int copp_idx = 0;
1668 int sess_type = 0;
1669 int i = 0, j = 0, be_id;
1670 int ret = 0;
1671
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301672 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1673 dspst_id, stream_type);
1674 if (ret) {
1675 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1676 fe_id);
1677 return ret;
1678 }
1679
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301680 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1681 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1682 return 0;
1683 }
1684
1685 if (!(channel_mixer[fe_id].enable)) {
1686 pr_debug("%s: channel mixer not enabled for FE %d\n",
1687 __func__, fe_id);
1688 return 0;
1689 }
1690
1691 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1692 sess_type = SESSION_TYPE_RX;
1693 else
1694 sess_type = SESSION_TYPE_TX;
1695
1696 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1697 ++i) {
1698 be_id = channel_input[fe_id][i] - 1;
1699 channel_mixer[fe_id].input_channels[i] =
1700 msm_bedais[be_id].channel;
1701
1702 if ((msm_bedais[be_id].active) &&
1703 test_bit(fe_id,
1704 &msm_bedais[be_id].fe_sessions[0])) {
1705 unsigned long copp =
1706 session_copp_map[fe_id][sess_type][be_id];
1707 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1708 if (test_bit(j, &copp)) {
1709 copp_idx = j;
1710 break;
1711 }
1712 }
1713
1714 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1715 __func__,
1716 fe_id, be_id, msm_bedais[be_id].channel,
1717 copp_idx);
1718 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001719 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301720 copp_idx, dspst_id, sess_type,
1721 channel_mixer + fe_id, i);
1722 }
1723 }
1724
1725 return ret;
1726}
1727
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301728/**
1729 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1730 * setting during runtime.
1731 *
1732 * @be_id: backend index
1733 * @session_id: session index
1734 * @session_type: session type
1735 * @params: parameters for channel mixer
1736 *
1737 * Retuen: 0 for success, else error
1738 */
1739int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1740 int session_type,
1741 struct msm_pcm_channel_mixer *params)
1742{
1743 int rc = 0;
1744 int port_id, copp_idx = 0;
1745
1746 be_id--;
1747 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1748 pr_err("%s: invalid backend id %d\n", __func__,
1749 be_id);
1750 return -EINVAL;
1751 }
1752
1753 port_id = msm_bedais[be_id].port_id;
1754 copp_idx = adm_get_default_copp_idx(port_id);
1755 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1756 __func__, port_id, copp_idx, session_id);
1757
1758 if ((params->input_channel < 0) ||
1759 (params->input_channel > ADM_MAX_CHANNELS)) {
1760 pr_err("%s: invalid input channel %d\n", __func__,
1761 params->input_channel);
1762 return -EINVAL;
1763 }
1764
1765 if ((params->output_channel < 0) ||
1766 (params->output_channel > ADM_MAX_CHANNELS)) {
1767 pr_err("%s: invalid output channel %d\n", __func__,
1768 params->output_channel);
1769 return -EINVAL;
1770 }
1771
1772 params->input_channels[0] = params->input_channel;
1773
1774 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1775 __func__, session_type,
1776 params->override_in_ch_map,
1777 params->override_out_ch_map,
1778 msm_bedais[be_id].active);
1779
1780 rc = adm_programable_channel_mixer(port_id,
1781 copp_idx,
1782 session_id,
1783 session_type,
1784 params,
1785 0);
1786 if (rc) {
1787 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1788 rc = -EINVAL;
1789 }
1790 return rc;
1791}
1792EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1793
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301794int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1795 int dspst_id, int stream_type)
1796{
1797 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1798 struct route_payload payload;
1799 u32 channels, sample_rate;
1800 uint16_t bits_per_sample = 16;
1801 uint32_t passthr_mode = LEGACY_PCM;
1802 int ret = 0;
1803
1804 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1805 /* bad ID assigned in machine driver */
1806 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1807 return -EINVAL;
1808 }
1809
1810 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1811 session_type = SESSION_TYPE_RX;
1812 path_type = ADM_PATH_PLAYBACK;
1813 port_type = MSM_AFE_PORT_TYPE_RX;
1814 } else {
1815 session_type = SESSION_TYPE_TX;
1816 path_type = ADM_PATH_LIVE_REC;
1817 port_type = MSM_AFE_PORT_TYPE_TX;
1818 }
1819
1820 mutex_lock(&routing_lock);
1821
1822 payload.num_copps = 0; /* only RX needs to use payload */
1823 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1824 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301825 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301826
1827 /* re-enable EQ if active */
1828 msm_qti_pp_send_eq_values(fedai_id);
1829 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1830 if (!is_be_dai_extproc(i) &&
1831 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1832 (msm_bedais[i].active) &&
1833 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1834 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301835 int port_id = get_port_id(msm_bedais[i].port_id);
1836
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301837 /*
1838 * check if ADM needs to be configured with different
1839 * channel mapping than backend
1840 */
1841 if (!msm_bedais[i].adm_override_ch)
1842 channels = msm_bedais[i].channel;
1843 else
1844 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301845
1846 bits_per_sample = msm_routing_get_bit_width(
1847 msm_bedais[i].format);
1848
1849 app_type =
1850 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1851 if (app_type) {
1852 app_type_idx =
1853 msm_pcm_routing_get_app_type_idx(app_type);
1854 sample_rate =
1855 fe_dai_app_type_cfg[fedai_id][session_type][i]
1856 .sample_rate;
1857 bits_per_sample =
1858 app_type_cfg[app_type_idx].bit_width;
1859 } else
1860 sample_rate = msm_bedais[i].sample_rate;
1861
1862 acdb_dev_id =
1863 fe_dai_app_type_cfg[fedai_id][session_type][i]
1864 .acdb_dev_id;
1865 topology = msm_routing_get_adm_topology(fedai_id,
1866 session_type,
1867 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301868 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301869 sample_rate, channels, topology,
1870 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301871 app_type, acdb_dev_id,
1872 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301873 if ((copp_idx < 0) ||
1874 (copp_idx >= MAX_COPPS_PER_PORT)) {
1875 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001876 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301877 mutex_unlock(&routing_lock);
1878 return -EINVAL;
1879 }
1880 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1881 __func__, fedai_id, session_type, i);
1882 set_bit(copp_idx,
1883 &session_copp_map[fedai_id][session_type][i]);
1884
1885 if (msm_is_resample_needed(
1886 sample_rate,
1887 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301888 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301889 msm_bedais[i].sample_rate);
1890
1891 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1892 unsigned long copp =
1893 session_copp_map[fedai_id][session_type][i];
1894 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301895 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301896 payload.copp_idx[num_copps] = j;
1897 payload.app_type[num_copps] =
1898 fe_dai_app_type_cfg
1899 [fedai_id][session_type]
1900 [i].app_type;
1901 payload.acdb_dev_id[num_copps] =
1902 fe_dai_app_type_cfg
1903 [fedai_id][session_type]
1904 [i].acdb_dev_id;
1905 payload.sample_rate[num_copps] =
1906 fe_dai_app_type_cfg
1907 [fedai_id][session_type]
1908 [i].sample_rate;
1909 num_copps++;
1910 }
1911 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301912 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301913 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1914 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301915 }
1916 }
1917 if (num_copps) {
1918 payload.num_copps = num_copps;
1919 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1920 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1921 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1922 }
1923
1924 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1925 dspst_id, stream_type);
1926 mutex_unlock(&routing_lock);
1927 return ret;
1928}
1929
1930int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1931 int dspst_id, int stream_type,
1932 struct msm_pcm_routing_evt event_info)
1933{
1934 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1935 stream_type)) {
1936 pr_err("%s: failed to reg phy stream\n", __func__);
1937 return -EINVAL;
1938 }
1939
1940 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1941 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1942 else
1943 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1944 return 0;
1945}
1946
1947void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1948{
Surendar Karkae7507512018-07-20 15:46:54 +05301949 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301950 struct msm_pcm_routing_fdai_data *fdai;
1951
1952 if (!is_mm_lsm_fe_id(fedai_id)) {
1953 /* bad ID assigned in machine driver */
1954 pr_err("%s: bad MM ID\n", __func__);
1955 return;
1956 }
1957
1958 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1959 port_type = MSM_AFE_PORT_TYPE_RX;
1960 session_type = SESSION_TYPE_RX;
1961 path_type = ADM_PATH_PLAYBACK;
1962 } else {
1963 port_type = MSM_AFE_PORT_TYPE_TX;
1964 session_type = SESSION_TYPE_TX;
1965 path_type = ADM_PATH_LIVE_REC;
1966 }
1967
1968 mutex_lock(&routing_lock);
1969 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1970 if (!is_be_dai_extproc(i) &&
1971 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1972 (msm_bedais[i].active) &&
1973 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1974 int idx;
1975 unsigned long copp =
1976 session_copp_map[fedai_id][session_type][i];
1977 fdai = &fe_dai_map[fedai_id][session_type];
1978
1979 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1980 if (test_bit(idx, &copp))
1981 break;
1982
1983 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1984 pr_debug("%s: copp idx is invalid, exiting\n",
1985 __func__);
1986 continue;
1987 }
Surendar Karkae7507512018-07-20 15:46:54 +05301988 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301989 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301990 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001991 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301992 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301993 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1994 __func__, copp, fedai_id, session_type, i);
1995 clear_bit(idx,
1996 &session_copp_map[fedai_id][session_type][i]);
1997 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1998 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1999 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302000 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302001 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302002 }
2003 }
2004
2005 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2006 fe_dai_map[fedai_id][session_type].be_srate = 0;
2007 mutex_unlock(&routing_lock);
2008}
2009
2010/* Check if FE/BE route is set */
2011static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2012{
2013 bool rc = false;
2014
2015 if (!is_mm_lsm_fe_id(fe_id)) {
2016 /* recheck FE ID in the mixer control defined in this file */
2017 pr_err("%s: bad MM ID\n", __func__);
2018 return rc;
2019 }
2020
2021 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2022 rc = true;
2023
2024 return rc;
2025}
2026
2027static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2028{
2029 int session_type, path_type, topology;
2030 u32 channels, sample_rate;
2031 uint16_t bits_per_sample = 16;
2032 struct msm_pcm_routing_fdai_data *fdai;
2033 uint32_t passthr_mode;
2034 bool is_lsm;
2035
2036 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2037
2038 if (!is_mm_lsm_fe_id(val)) {
2039 /* recheck FE ID in the mixer control defined in this file */
2040 pr_err("%s: bad MM ID\n", __func__);
2041 return;
2042 }
2043
2044 if (!route_check_fe_id_adm_support(val)) {
2045 /* ignore adm open if not supported for fe_id */
2046 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002047 if (set)
2048 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2049 else
2050 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302051 return;
2052 }
2053
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302054 session_type =
2055 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2056 SESSION_TYPE_RX : SESSION_TYPE_TX;
2057 fdai = &fe_dai_map[val][session_type];
2058 passthr_mode = fdai->passthr_mode;
2059 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302060 if (passthr_mode != LEGACY_PCM)
2061 path_type = ADM_PATH_COMPRESSED_RX;
2062 else
2063 path_type = ADM_PATH_PLAYBACK;
2064 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002065 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302066 path_type = ADM_PATH_COMPRESSED_TX;
2067 else
2068 path_type = ADM_PATH_LIVE_REC;
2069 }
2070 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2071 (val <= MSM_FRONTEND_DAI_LSM8);
2072
2073 mutex_lock(&routing_lock);
2074 if (set) {
2075 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2076 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2077 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2078 voc_start_playback(set, msm_bedais[reg].port_id);
2079
2080 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302081 if (msm_bedais[reg].active && fdai->strm_id !=
2082 INVALID_SESSION) {
2083 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302084 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302085 /*
2086 * check if ADM needs to be configured with different
2087 * channel mapping than backend
2088 */
2089 if (!msm_bedais[reg].adm_override_ch)
2090 channels = msm_bedais[reg].channel;
2091 else
2092 channels = msm_bedais[reg].adm_override_ch;
2093 if (session_type == SESSION_TYPE_TX &&
2094 fdai->be_srate &&
2095 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2096 pr_debug("%s: flush strm %d diff BE rates\n",
2097 __func__, fdai->strm_id);
2098
2099 if (fdai->event_info.event_func)
2100 fdai->event_info.event_func(
2101 MSM_PCM_RT_EVT_BUF_RECFG,
2102 fdai->event_info.priv_data);
2103 fdai->be_srate = 0; /* might not need it */
2104 }
2105
2106 bits_per_sample = msm_routing_get_bit_width(
2107 msm_bedais[reg].format);
2108
2109 app_type =
2110 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2111 if (app_type && is_lsm) {
2112 app_type_idx =
2113 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2114 sample_rate =
2115 fe_dai_app_type_cfg[val][session_type][reg]
2116 .sample_rate;
2117 bits_per_sample =
2118 lsm_app_type_cfg[app_type_idx].bit_width;
2119 } else if (app_type) {
2120 app_type_idx =
2121 msm_pcm_routing_get_app_type_idx(app_type);
2122 sample_rate =
2123 fe_dai_app_type_cfg[val][session_type][reg]
2124 .sample_rate;
2125 bits_per_sample =
2126 app_type_cfg[app_type_idx].bit_width;
2127 } else
2128 sample_rate = msm_bedais[reg].sample_rate;
2129
2130 topology = msm_routing_get_adm_topology(val,
2131 session_type,
2132 reg);
2133 acdb_dev_id =
2134 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302135 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302136 sample_rate, channels, topology,
2137 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302138 app_type, acdb_dev_id,
2139 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302140 if ((copp_idx < 0) ||
2141 (copp_idx >= MAX_COPPS_PER_PORT)) {
2142 pr_err("%s: adm open failed\n", __func__);
2143 mutex_unlock(&routing_lock);
2144 return;
2145 }
2146 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2147 __func__, val, session_type, reg);
2148 set_bit(copp_idx,
2149 &session_copp_map[val][session_type][reg]);
2150
2151 if (msm_is_resample_needed(
2152 sample_rate,
2153 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302154 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302155 msm_bedais[reg].sample_rate);
2156
2157 if (session_type == SESSION_TYPE_RX &&
2158 fdai->event_info.event_func)
2159 fdai->event_info.event_func(
2160 MSM_PCM_RT_EVT_DEVSWITCH,
2161 fdai->event_info.priv_data);
2162
2163 msm_pcm_routing_build_matrix(val, session_type,
2164 path_type,
2165 fdai->perf_mode,
2166 passthr_mode);
2167 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2168 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302169 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2170 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302171 }
2172 } else {
2173 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2174 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2175 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2176 voc_start_playback(set, msm_bedais[reg].port_id);
2177 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302178 if (msm_bedais[reg].active && fdai->strm_id !=
2179 INVALID_SESSION) {
2180 int idx;
2181 int port_id;
2182 unsigned long copp =
2183 session_copp_map[val][session_type][reg];
2184 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2185 if (test_bit(idx, &copp))
2186 break;
2187
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002188 if (idx >= MAX_COPPS_PER_PORT) {
2189 pr_debug("%s: copp idx is invalid, exiting\n",
2190 __func__);
2191 mutex_unlock(&routing_lock);
2192 return;
2193 }
Surendar Karkae7507512018-07-20 15:46:54 +05302194 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302195 topology = adm_get_topology_for_port_copp_idx(port_id,
2196 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002197 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302198 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302199 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2200 __func__, copp, val, session_type, reg,
2201 topology);
2202 clear_bit(idx,
2203 &session_copp_map[val][session_type][reg]);
2204 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2205 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2206 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2207 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302208 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302209 msm_pcm_routing_build_matrix(val, session_type,
2210 path_type,
2211 fdai->perf_mode,
2212 passthr_mode);
2213 }
2214 }
2215 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2216 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2217 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2218
2219 mutex_unlock(&routing_lock);
2220}
2221
2222static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2223 struct snd_ctl_elem_value *ucontrol)
2224{
2225 struct soc_mixer_control *mc =
2226 (struct soc_mixer_control *)kcontrol->private_value;
2227
Meng Wang05d5e9a2018-03-28 16:45:03 +08002228 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302229 ucontrol->value.integer.value[0] = 1;
2230 else
2231 ucontrol->value.integer.value[0] = 0;
2232
Meng Wang05d5e9a2018-03-28 16:45:03 +08002233 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302234 ucontrol->value.integer.value[0]);
2235
2236 return 0;
2237}
2238
2239static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2240 struct snd_ctl_elem_value *ucontrol)
2241{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302242 struct snd_soc_dapm_widget *widget =
2243 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302244 struct soc_mixer_control *mc =
2245 (struct soc_mixer_control *)kcontrol->private_value;
2246 struct snd_soc_dapm_update *update = NULL;
2247
2248 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002249 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2250 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302251 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2252 update);
2253 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002254 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2255 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302256 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2257 update);
2258 }
2259
2260 return 1;
2261}
2262
2263static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2264 struct snd_ctl_elem_value *ucontrol)
2265{
2266 struct soc_mixer_control *mc =
2267 (struct soc_mixer_control *)kcontrol->private_value;
2268
Meng Wang05d5e9a2018-03-28 16:45:03 +08002269 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302270 ucontrol->value.integer.value[0] = 1;
2271 else
2272 ucontrol->value.integer.value[0] = 0;
2273
Meng Wang05d5e9a2018-03-28 16:45:03 +08002274 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302275 ucontrol->value.integer.value[0]);
2276
2277 return 0;
2278}
2279
2280static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2281 struct snd_ctl_elem_value *ucontrol)
2282{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302283 struct snd_soc_dapm_widget *widget =
2284 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302285 struct soc_mixer_control *mc =
2286 (struct soc_mixer_control *)kcontrol->private_value;
2287 struct snd_soc_dapm_update *update = NULL;
2288
Meng Wang05d5e9a2018-03-28 16:45:03 +08002289 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302290 ucontrol->value.integer.value[0]);
2291
2292 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002293 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2294 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302295 snd_soc_dapm_mixer_update_power(widget->dapm,
2296 kcontrol, 1, update);
2297 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002298 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2299 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302300 snd_soc_dapm_mixer_update_power(widget->dapm,
2301 kcontrol, 0, update);
2302 }
2303
2304 return 1;
2305}
2306
2307static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2308{
2309 u32 session_id = 0;
2310 u16 path_type;
2311 struct media_format_info voc_be_media_format;
2312
2313 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2314
2315 session_id = msm_pcm_routing_get_voc_sessionid(val);
2316
2317 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2318 __func__, val, session_id);
2319
2320 mutex_lock(&routing_lock);
2321
2322 if (set)
2323 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2324 else
2325 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2326
2327 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2328 afe_get_port_type(msm_bedais[reg].port_id) ==
2329 MSM_AFE_PORT_TYPE_RX) {
2330 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2331 __func__, set, msm_bedais[reg].port_id);
2332 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2333 }
2334
2335 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2336 MSM_AFE_PORT_TYPE_RX)
2337 path_type = RX_PATH;
2338 else
2339 path_type = TX_PATH;
2340
2341 if (set) {
2342 if (msm_bedais[reg].active) {
2343 voc_set_route_flag(session_id, path_type, 1);
2344
2345 memset(&voc_be_media_format, 0,
2346 sizeof(struct media_format_info));
2347
2348 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2349 voc_be_media_format.num_channels =
2350 msm_bedais[reg].channel;
2351 voc_be_media_format.sample_rate =
2352 msm_bedais[reg].sample_rate;
2353 voc_be_media_format.bits_per_sample =
2354 msm_bedais[reg].format;
2355 /* Defaulting this to 1 for voice call usecases */
2356 voc_be_media_format.channel_mapping[0] = 1;
2357
2358 voc_set_device_config(session_id, path_type,
2359 &voc_be_media_format);
2360
2361 if (voc_get_route_flag(session_id, TX_PATH) &&
2362 voc_get_route_flag(session_id, RX_PATH))
2363 voc_enable_device(session_id);
2364 } else {
2365 pr_debug("%s BE is not active\n", __func__);
2366 }
2367 } else {
2368 voc_set_route_flag(session_id, path_type, 0);
2369 voc_disable_device(session_id);
2370 }
2371
2372 mutex_unlock(&routing_lock);
2373
2374}
2375
2376static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2377 struct snd_ctl_elem_value *ucontrol)
2378{
2379 struct soc_mixer_control *mc =
2380 (struct soc_mixer_control *)kcontrol->private_value;
2381
2382 mutex_lock(&routing_lock);
2383
Meng Wang05d5e9a2018-03-28 16:45:03 +08002384 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302385 ucontrol->value.integer.value[0] = 1;
2386 else
2387 ucontrol->value.integer.value[0] = 0;
2388
2389 mutex_unlock(&routing_lock);
2390
Meng Wang05d5e9a2018-03-28 16:45:03 +08002391 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302392 ucontrol->value.integer.value[0]);
2393
2394 return 0;
2395}
2396
2397static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2398 struct snd_ctl_elem_value *ucontrol)
2399{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302400 struct snd_soc_dapm_widget *widget =
2401 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302402 struct soc_mixer_control *mc =
2403 (struct soc_mixer_control *)kcontrol->private_value;
2404 struct snd_soc_dapm_update *update = NULL;
2405
2406 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002407 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302408 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2409 update);
2410 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002411 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302412 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2413 update);
2414 }
2415
2416 return 1;
2417}
2418
2419static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2420 struct snd_ctl_elem_value *ucontrol)
2421{
2422 struct soc_mixer_control *mc =
2423 (struct soc_mixer_control *)kcontrol->private_value;
2424
2425 mutex_lock(&routing_lock);
2426
Meng Wang05d5e9a2018-03-28 16:45:03 +08002427 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302428 ucontrol->value.integer.value[0] = 1;
2429 else
2430 ucontrol->value.integer.value[0] = 0;
2431
2432 mutex_unlock(&routing_lock);
2433
Meng Wang05d5e9a2018-03-28 16:45:03 +08002434 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302435 ucontrol->value.integer.value[0]);
2436
2437 return 0;
2438}
2439
2440static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2441 struct snd_ctl_elem_value *ucontrol)
2442{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302443 struct snd_soc_dapm_widget *widget =
2444 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302445 struct soc_mixer_control *mc =
2446 (struct soc_mixer_control *)kcontrol->private_value;
2447 struct snd_soc_dapm_update *update = NULL;
2448
2449 if (ucontrol->value.integer.value[0]) {
2450 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002451 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302452 mutex_unlock(&routing_lock);
2453
2454 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2455 update);
2456 } else {
2457 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002458 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302459 mutex_unlock(&routing_lock);
2460
2461 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2462 update);
2463 }
2464
Meng Wang05d5e9a2018-03-28 16:45:03 +08002465 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302466 ucontrol->value.integer.value[0]);
2467
2468 return 1;
2469}
2470
2471/*
2472 * Return the mapping between port ID and backend ID to enable the AFE callback
2473 * to determine the acdb_dev_id from the port id
2474 */
2475int msm_pcm_get_be_id_from_port_id(int port_id)
2476{
2477 int i;
2478 int be_id = -EINVAL;
2479
2480 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2481 if (msm_bedais[i].port_id == port_id) {
2482 be_id = i;
2483 break;
2484 }
2485 }
2486
2487 return be_id;
2488}
2489
2490/*
2491 * Return the registered dev_acdb_id given a port ID to enable identifying the
2492 * correct AFE calibration information by comparing the header information.
2493 */
2494static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2495{
2496 int acdb_id = -EINVAL;
2497 int i = 0;
2498 int session;
2499 int port_type = afe_get_port_type(port_id);
2500 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2501
2502 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2503 __func__, port_id, be_id, port_type);
2504
2505 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2506 session = SESSION_TYPE_TX;
2507 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2508 session = SESSION_TYPE_RX;
2509 } else {
2510 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2511 acdb_id = -EINVAL;
2512 goto exit;
2513 }
2514
2515 if (be_id < 0) {
2516 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2517 goto exit;
2518 }
2519
2520 mutex_lock(&routing_lock);
2521 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2522 MSM_FRONTEND_DAI_MAX);
2523 if (i < MSM_FRONTEND_DAI_MAX)
2524 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2525
2526 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2527 __func__, i, session, be_id, acdb_id);
2528 mutex_unlock(&routing_lock);
2529exit:
2530 return acdb_id;
2531}
2532
2533static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2534 struct snd_ctl_elem_value *ucontrol)
2535{
2536 ucontrol->value.integer.value[0] = fm_switch_enable;
2537 pr_debug("%s: FM Switch enable %ld\n", __func__,
2538 ucontrol->value.integer.value[0]);
2539 return 0;
2540}
2541
2542static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2543 struct snd_ctl_elem_value *ucontrol)
2544{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302545 struct snd_soc_dapm_widget *widget =
2546 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302547 struct snd_soc_dapm_update *update = NULL;
2548
2549 pr_debug("%s: FM Switch enable %ld\n", __func__,
2550 ucontrol->value.integer.value[0]);
2551 if (ucontrol->value.integer.value[0])
2552 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2553 update);
2554 else
2555 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2556 update);
2557 fm_switch_enable = ucontrol->value.integer.value[0];
2558 return 1;
2559}
2560
2561static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2562 struct snd_ctl_elem_value *ucontrol)
2563{
2564 ucontrol->value.integer.value[0] = hfp_switch_enable;
2565 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2566 ucontrol->value.integer.value[0]);
2567 return 0;
2568}
2569
2570static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2571 struct snd_ctl_elem_value *ucontrol)
2572{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302573 struct snd_soc_dapm_widget *widget =
2574 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302575 struct snd_soc_dapm_update *update = NULL;
2576
2577 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2578 ucontrol->value.integer.value[0]);
2579 if (ucontrol->value.integer.value[0])
2580 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2581 1, update);
2582 else
2583 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2584 0, update);
2585 hfp_switch_enable = ucontrol->value.integer.value[0];
2586 return 1;
2587}
2588
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002589static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2590 struct snd_ctl_elem_value *ucontrol)
2591{
2592 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2593 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2594 ucontrol->value.integer.value[0]);
2595 return 0;
2596}
2597
2598static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2599 struct snd_ctl_elem_value *ucontrol)
2600{
2601 struct snd_soc_dapm_widget *widget =
2602 snd_soc_dapm_kcontrol_widget(kcontrol);
2603 struct snd_soc_dapm_update *update = NULL;
2604
2605 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2606 ucontrol->value.integer.value[0]);
2607 a2dp_switch_enable = ucontrol->value.integer.value[0];
2608 if (a2dp_switch_enable)
2609 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2610 1, update);
2611 else
2612 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2613 0, update);
2614 return 1;
2615}
2616
Zhou Songcaa541d2019-02-19 18:37:47 +08002617static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2618 struct snd_ctl_elem_value *ucontrol)
2619{
2620 ucontrol->value.integer.value[0] = sco_switch_enable;
2621 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2622 ucontrol->value.integer.value[0]);
2623 return 0;
2624}
2625
2626static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2627 struct snd_ctl_elem_value *ucontrol)
2628{
2629 struct snd_soc_dapm_widget *widget =
2630 snd_soc_dapm_kcontrol_widget(kcontrol);
2631 struct snd_soc_dapm_update *update = NULL;
2632
2633 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2634 ucontrol->value.integer.value[0]);
2635 sco_switch_enable = ucontrol->value.integer.value[0];
2636 if (sco_switch_enable)
2637 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2638 1, update);
2639 else
2640 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2641 0, update);
2642 return 1;
2643}
2644
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302645static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2646 struct snd_ctl_elem_value *ucontrol)
2647{
2648 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2649 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2650 ucontrol->value.integer.value[0]);
2651 return 0;
2652}
2653
2654static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2655 struct snd_ctl_elem_value *ucontrol)
2656{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302657 struct snd_soc_dapm_widget *widget =
2658 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302659 struct snd_soc_dapm_update *update = NULL;
2660
2661 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2662 ucontrol->value.integer.value[0]);
2663 if (ucontrol->value.integer.value[0])
2664 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2665 update);
2666 else
2667 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2668 update);
2669 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2670 return 1;
2671}
2672
2673static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2674 struct snd_ctl_elem_value *ucontrol)
2675{
2676 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2677 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2678 ucontrol->value.integer.value[0]);
2679 return 0;
2680}
2681
2682static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2683 struct snd_ctl_elem_value *ucontrol)
2684{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302685 struct snd_soc_dapm_widget *widget =
2686 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302687 struct snd_soc_dapm_update *update = NULL;
2688
2689 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2690 ucontrol->value.integer.value[0]);
2691 if (ucontrol->value.integer.value[0])
2692 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2693 update);
2694 else
2695 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2696 update);
2697 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2698 return 1;
2699}
2700
2701static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2702 struct snd_ctl_elem_value *ucontrol)
2703{
2704 ucontrol->value.integer.value[0] = usb_switch_enable;
2705 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2706 ucontrol->value.integer.value[0]);
2707 return 0;
2708}
2709
2710static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2711 struct snd_ctl_elem_value *ucontrol)
2712{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302713 struct snd_soc_dapm_widget *widget =
2714 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302715 struct snd_soc_dapm_update *update = NULL;
2716
2717 pr_debug("%s: USB Switch enable %ld\n", __func__,
2718 ucontrol->value.integer.value[0]);
2719 if (ucontrol->value.integer.value[0])
2720 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2721 1, update);
2722 else
2723 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2724 0, update);
2725 usb_switch_enable = ucontrol->value.integer.value[0];
2726 return 1;
2727}
2728
2729static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2730 struct snd_ctl_elem_value *ucontrol)
2731{
2732 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2733 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2734 ucontrol->value.integer.value[0]);
2735 return 0;
2736}
2737
2738static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2739 struct snd_ctl_elem_value *ucontrol)
2740{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302741 struct snd_soc_dapm_widget *widget =
2742 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302743 struct snd_soc_dapm_update *update = NULL;
2744
2745 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2746 ucontrol->value.integer.value[0]);
2747 if (ucontrol->value.integer.value[0])
2748 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2749 update);
2750 else
2751 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2752 update);
2753 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2754 return 1;
2755}
2756
2757static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2758 struct snd_ctl_elem_value *ucontrol)
2759{
2760 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2761 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2762 ucontrol->value.integer.value[0]);
2763 return 0;
2764}
2765
2766static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2767 struct snd_ctl_elem_value *ucontrol)
2768{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302769 struct snd_soc_dapm_widget *widget =
2770 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302771 struct snd_soc_dapm_update *update = NULL;
2772
2773 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2774 ucontrol->value.integer.value[0]);
2775 if (ucontrol->value.integer.value[0])
2776 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2777 update);
2778 else
2779 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2780 update);
2781 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2782 return 1;
2783}
2784
2785static int msm_routing_get_tert_mi2s_switch_mixer(
2786 struct snd_kcontrol *kcontrol,
2787 struct snd_ctl_elem_value *ucontrol)
2788{
2789 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2790 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2791 ucontrol->value.integer.value[0]);
2792 return 0;
2793}
2794
2795static int msm_routing_put_tert_mi2s_switch_mixer(
2796 struct snd_kcontrol *kcontrol,
2797 struct snd_ctl_elem_value *ucontrol)
2798{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302799 struct snd_soc_dapm_widget *widget =
2800 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302801 struct snd_soc_dapm_update *update = NULL;
2802
2803 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2804 ucontrol->value.integer.value[0]);
2805 if (ucontrol->value.integer.value[0])
2806 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2807 update);
2808 else
2809 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2810 update);
2811 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2812 return 1;
2813}
2814
2815static int msm_routing_get_quat_mi2s_switch_mixer(
2816 struct snd_kcontrol *kcontrol,
2817 struct snd_ctl_elem_value *ucontrol)
2818{
2819 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2820 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2821 ucontrol->value.integer.value[0]);
2822 return 0;
2823}
2824
2825static int msm_routing_put_quat_mi2s_switch_mixer(
2826 struct snd_kcontrol *kcontrol,
2827 struct snd_ctl_elem_value *ucontrol)
2828{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302829 struct snd_soc_dapm_widget *widget =
2830 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302831 struct snd_soc_dapm_update *update = NULL;
2832
2833 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2834 ucontrol->value.integer.value[0]);
2835 if (ucontrol->value.integer.value[0])
2836 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2837 update);
2838 else
2839 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2840 update);
2841 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2842 return 1;
2843}
2844
Rohit Kumara5077932017-09-10 22:05:05 +05302845static int msm_routing_get_quin_mi2s_switch_mixer(
2846 struct snd_kcontrol *kcontrol,
2847 struct snd_ctl_elem_value *ucontrol)
2848{
2849 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2850 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2851 ucontrol->value.integer.value[0]);
2852 return 0;
2853}
2854
2855static int msm_routing_put_quin_mi2s_switch_mixer(
2856 struct snd_kcontrol *kcontrol,
2857 struct snd_ctl_elem_value *ucontrol)
2858{
2859 struct snd_soc_dapm_widget *widget =
2860 snd_soc_dapm_kcontrol_widget(kcontrol);
2861 struct snd_soc_dapm_update *update = NULL;
2862
2863 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2864 ucontrol->value.integer.value[0]);
2865 if (ucontrol->value.integer.value[0])
2866 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2867 update);
2868 else
2869 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2870 update);
2871 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2872 return 1;
2873}
2874
Karthikeyan Manic3700752019-03-11 18:33:53 -07002875static int msm_routing_get_sen_mi2s_switch_mixer(
2876 struct snd_kcontrol *kcontrol,
2877 struct snd_ctl_elem_value *ucontrol)
2878{
2879 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2880 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2881 ucontrol->value.integer.value[0]);
2882 return 0;
2883}
2884
2885static int msm_routing_put_sen_mi2s_switch_mixer(
2886 struct snd_kcontrol *kcontrol,
2887 struct snd_ctl_elem_value *ucontrol)
2888{
2889 struct snd_soc_dapm_widget *widget =
2890 snd_soc_dapm_kcontrol_widget(kcontrol);
2891 struct snd_soc_dapm_update *update = NULL;
2892
2893 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2894 ucontrol->value.integer.value[0]);
2895 if (ucontrol->value.integer.value[0])
2896 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2897 update);
2898 else
2899 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2900 update);
2901 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2902 return 1;
2903}
2904
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302905static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2906 struct snd_ctl_elem_value *ucontrol)
2907{
2908 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2909 pr_debug("%s: FM Switch enable %ld\n", __func__,
2910 ucontrol->value.integer.value[0]);
2911 return 0;
2912}
2913
2914static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2915 struct snd_ctl_elem_value *ucontrol)
2916{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302917 struct snd_soc_dapm_widget *widget =
2918 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302919 struct snd_soc_dapm_update *update = NULL;
2920
2921 pr_debug("%s: FM Switch enable %ld\n", __func__,
2922 ucontrol->value.integer.value[0]);
2923 if (ucontrol->value.integer.value[0])
2924 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2925 update);
2926 else
2927 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2928 update);
2929 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2930 return 1;
2931}
2932
2933static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2934 struct snd_ctl_elem_value *ucontrol)
2935{
2936 ucontrol->value.integer.value[0] = lsm_port_index;
2937 return 0;
2938}
2939
2940static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2941 struct snd_ctl_elem_value *ucontrol)
2942{
2943 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2944 int mux = ucontrol->value.enumerated.item[0];
2945 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2946
2947 if (mux >= e->items) {
2948 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2949 return -EINVAL;
2950 }
2951
2952 pr_debug("%s: LSM enable %ld\n", __func__,
2953 ucontrol->value.integer.value[0]);
2954 switch (ucontrol->value.integer.value[0]) {
2955 case 1:
2956 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2957 break;
2958 case 2:
2959 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2960 break;
2961 case 3:
2962 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2963 break;
2964 case 4:
2965 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2966 break;
2967 case 5:
2968 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2969 break;
2970 case 6:
2971 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2972 break;
2973 case 7:
2974 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2975 break;
2976 case 8:
2977 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2978 break;
2979 case 9:
2980 lsm_port = ADM_LSM_PORT_ID;
2981 break;
2982 case 10:
2983 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2984 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302985 case 11:
2986 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2987 break;
2988 case 12:
2989 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2990 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302991 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002992 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302993 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302994 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002995 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2996 break;
2997 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302998 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2999 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303000 default:
3001 pr_err("Default lsm port");
3002 break;
3003 }
3004 set_lsm_port(lsm_port);
3005 lsm_port_index = ucontrol->value.integer.value[0];
3006
3007 return 0;
3008}
3009
3010static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3011 struct snd_ctl_elem_value *ucontrol)
3012{
3013 int i;
3014 u16 port_id;
3015 enum afe_mad_type mad_type;
3016
3017 pr_debug("%s: enter\n", __func__);
3018 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3019 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3020 strlen(lsm_port_text[i])))
3021 break;
3022
3023 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003024 pr_warn("%s: Invalid id name %s\n", __func__,
3025 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303026 return -EINVAL;
3027 }
3028
3029 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3030
3031 /*Check for Tertiary/Quaternary/INT3 TX port*/
3032 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3033 strlen(lsm_port_text[7])))
3034 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3035
3036 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3037 strlen(lsm_port_text[8])))
3038 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3039
3040 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3041 strlen(lsm_port_text[10])))
3042 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3043
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303044 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3045 strlen(lsm_port_text[13])))
3046 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3047
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303048 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3049 strlen(lsm_port_text[14])))
3050 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3051
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303052 mad_type = afe_port_get_mad_type(port_id);
3053 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3054 mad_type);
3055 switch (mad_type) {
3056 case MAD_HW_NONE:
3057 ucontrol->value.integer.value[0] = MADNONE;
3058 break;
3059 case MAD_HW_AUDIO:
3060 ucontrol->value.integer.value[0] = MADAUDIO;
3061 break;
3062 case MAD_HW_BEACON:
3063 ucontrol->value.integer.value[0] = MADBEACON;
3064 break;
3065 case MAD_HW_ULTRASOUND:
3066 ucontrol->value.integer.value[0] = MADULTRASOUND;
3067 break;
3068 case MAD_SW_AUDIO:
3069 ucontrol->value.integer.value[0] = MADSWAUDIO;
3070 break;
3071 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003072 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303073 return -EINVAL;
3074 }
3075 return 0;
3076}
3077
3078static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3079 struct snd_ctl_elem_value *ucontrol)
3080{
3081 int i;
3082 u16 port_id;
3083 enum afe_mad_type mad_type;
3084
3085 pr_debug("%s: enter\n", __func__);
3086 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3087 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3088 strlen(lsm_port_text[i])))
3089 break;
3090
3091 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003092 pr_warn("%s: Invalid id name %s\n", __func__,
3093 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303094 return -EINVAL;
3095 }
3096
3097 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3098 switch (ucontrol->value.integer.value[0]) {
3099 case MADNONE:
3100 mad_type = MAD_HW_NONE;
3101 break;
3102 case MADAUDIO:
3103 mad_type = MAD_HW_AUDIO;
3104 break;
3105 case MADBEACON:
3106 mad_type = MAD_HW_BEACON;
3107 break;
3108 case MADULTRASOUND:
3109 mad_type = MAD_HW_ULTRASOUND;
3110 break;
3111 case MADSWAUDIO:
3112 mad_type = MAD_SW_AUDIO;
3113 break;
3114 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003115 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303116 return -EINVAL;
3117 }
3118
3119 /*Check for Tertiary/Quaternary/INT3 TX port*/
3120 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3121 strlen(lsm_port_text[7])))
3122 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3123
3124 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3125 strlen(lsm_port_text[8])))
3126 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3127
3128 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3129 strlen(lsm_port_text[10])))
3130 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3131
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303132 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3133 strlen(lsm_port_text[13])))
3134 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3135
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303136 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3137 strlen(lsm_port_text[14])))
3138 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3139
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303140 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3141 mad_type);
3142 return afe_port_set_mad_type(port_id, mad_type);
3143}
3144
3145static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3146
Surendar Karka25e77dd2019-05-09 14:33:45 +05303147static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303148 adm_override_chs_text);
3149
3150static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3151{
3152 int backend_id;
3153
3154 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3155 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303156 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3157 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303158 } else {
3159 pr_err("%s: unsupported backend id: %s",
3160 __func__, kcontrol->id.name);
3161 return -EINVAL;
3162 }
3163
3164 return backend_id;
3165}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303166
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303167static int msm_routing_adm_channel_config_get(
3168 struct snd_kcontrol *kcontrol,
3169 struct snd_ctl_elem_value *ucontrol)
3170{
3171 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3172
3173 if (backend_id >= 0) {
3174 mutex_lock(&routing_lock);
3175 ucontrol->value.integer.value[0] =
3176 msm_bedais[backend_id].adm_override_ch;
3177 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3178 ucontrol->value.integer.value[0], backend_id);
3179 mutex_unlock(&routing_lock);
3180 }
3181
3182 return 0;
3183}
3184
3185static int msm_routing_adm_channel_config_put(
3186 struct snd_kcontrol *kcontrol,
3187 struct snd_ctl_elem_value *ucontrol)
3188{
3189 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3190
3191 if (backend_id >= 0) {
3192 mutex_lock(&routing_lock);
3193 msm_bedais[backend_id].adm_override_ch =
3194 ucontrol->value.integer.value[0];
3195 pr_debug("%s:updating BE :%d adm channels: %d\n",
3196 __func__, backend_id,
3197 msm_bedais[backend_id].adm_override_ch);
3198 mutex_unlock(&routing_lock);
3199 }
3200
3201 return 0;
3202}
3203
3204static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303205 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3206 msm_routing_adm_channel_config_get,
3207 msm_routing_adm_channel_config_put),
3208 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303209 msm_routing_adm_channel_config_get,
3210 msm_routing_adm_channel_config_put),
3211};
3212
3213static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3214 struct snd_ctl_elem_value *ucontrol)
3215{
3216
3217 mutex_lock(&routing_lock);
3218 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3219 mutex_unlock(&routing_lock);
3220 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3221 ucontrol->value.integer.value[0]);
3222 return 0;
3223};
3224
3225static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3226 struct snd_ctl_elem_value *ucontrol)
3227{
3228 struct aanc_data aanc_info;
3229
3230 mutex_lock(&routing_lock);
3231 memset(&aanc_info, 0x00, sizeof(aanc_info));
3232 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3233 ucontrol->value.integer.value[0]);
3234 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3235 if (ucontrol->value.integer.value[0] == 0) {
3236 aanc_info.aanc_active = false;
3237 aanc_info.aanc_tx_port = 0;
3238 aanc_info.aanc_rx_port = 0;
3239 } else {
3240 aanc_info.aanc_active = true;
3241 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3242 aanc_info.aanc_tx_port =
3243 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3244 }
3245 afe_set_aanc_info(&aanc_info);
3246 mutex_unlock(&routing_lock);
3247 return 0;
3248};
3249static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3250 struct snd_ctl_elem_value *ucontrol)
3251{
3252 int idx = 0, shift = 0;
3253 struct soc_mixer_control *mc =
3254 (struct soc_mixer_control *)kcontrol->private_value;
3255
Meng Wang05d5e9a2018-03-28 16:45:03 +08003256 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3257 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303258
3259 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3260 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3261 return -EINVAL;
3262 }
3263
3264 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003265 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303266 ucontrol->value.integer.value[0] = 1;
3267 else
3268 ucontrol->value.integer.value[0] = 0;
3269
Meng Wang05d5e9a2018-03-28 16:45:03 +08003270 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303271 ucontrol->value.integer.value[0]);
3272
3273 return 0;
3274}
3275
3276static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3277 struct snd_ctl_elem_value *ucontrol)
3278{
3279 int idx = 0, shift = 0;
3280 struct soc_mixer_control *mc =
3281 (struct soc_mixer_control *)kcontrol->private_value;
3282
Meng Wang05d5e9a2018-03-28 16:45:03 +08003283 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3284 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303285
3286 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3287 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3288 return -EINVAL;
3289 }
3290
Meng Wang05d5e9a2018-03-28 16:45:03 +08003291 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3292 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303293 ucontrol->value.integer.value[0], idx, shift);
3294
3295 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003296 afe_loopback(1, msm_bedais[mc->shift].port_id,
3297 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303298 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003299 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303300 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003301 afe_loopback(0, msm_bedais[mc->shift].port_id,
3302 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303303 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003304 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303305 }
3306
3307 return 1;
3308}
3309
3310static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3311 struct snd_ctl_elem_value *ucontrol)
3312{
3313 u16 fe_id = 0;
3314
3315 fe_id = ((struct soc_mixer_control *)
3316 kcontrol->private_value)->shift;
3317 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3318 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3319 return -EINVAL;
3320 }
3321
3322 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3323
3324 return 0;
3325}
3326
3327static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3328 struct snd_ctl_elem_value *ucontrol)
3329{
3330 u16 fe_id = 0;
3331
3332 fe_id = ((struct soc_mixer_control *)
3333 kcontrol->private_value)->shift;
3334 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3335 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3336 return -EINVAL;
3337 }
3338
3339 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3340
3341 return 1;
3342}
3343
3344static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3345 struct snd_ctl_elem_value *ucontrol)
3346{
3347 u16 fe_id = 0;
3348
3349 fe_id = ((struct soc_multi_mixer_control *)
3350 kcontrol->private_value)->shift;
3351 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3352 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3353 return -EINVAL;
3354 }
3355
3356 ucontrol->value.integer.value[0] =
3357 channel_mixer[fe_id].output_channel;
3358 return 0;
3359}
3360
3361static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3362 struct snd_ctl_elem_value *ucontrol)
3363{
3364 u16 fe_id = 0;
3365
3366 fe_id = ((struct soc_multi_mixer_control *)
3367 kcontrol->private_value)->shift;
3368 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3369 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3370 return -EINVAL;
3371 }
3372
3373 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3374 fe_id,
3375 (unsigned int)(ucontrol->value.integer.value[0]));
3376 channel_mixer[fe_id].output_channel =
3377 (unsigned int)(ucontrol->value.integer.value[0]);
3378
3379 return 1;
3380}
3381
3382static const char *const ch_mixer[] = {"Disable", "Enable"};
3383
3384/* If new backend is added, need update this array */
3385static const char *const be_name[] = {
3386"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3387"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3388"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3389"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3390"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3391"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3392"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3393"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3394"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3395"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3396"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3397"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003398"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303399"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3400"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3401"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3402"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3403"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3404"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3405"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3406"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3407"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3408"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3409"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3410"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3411"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3412"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3413"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3414"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3415"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303416"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3417"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3418"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3419"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003420"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3421"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3422"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3423"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003424"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3425"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3426"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3427"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3428"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3429"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3430"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3431"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 -08003432"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 +05303433"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3434"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3435"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3436"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3437"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003438"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303439};
3440
3441static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3442 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3443static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3444 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3445static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3446 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3447static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3448 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303449static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3450 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3451static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3452 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3453static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3454 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3455static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3456 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303457static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
3458 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303459
3460static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3461 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3462static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3463 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3464static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3465 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3466static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3467 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3468static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3469 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3470static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3471 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3472static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3473 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3474static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3475 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303476static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3477 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3478static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3479 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3480static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3481 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3482static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3483 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3484static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3485 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3486static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3487 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3488static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3489 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3490static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3491 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303492static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
3493 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
3494static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
3495 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303496
3497static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3498 unsigned int channels,
3499 unsigned int items, const char *const names[])
3500{
3501 if (uinfo->value.enumerated.item >= items)
3502 uinfo->value.enumerated.item = items - 1;
3503
3504 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3505 sizeof(uinfo->value.enumerated.name),
3506 "ALSA: too long item name '%s'\n",
3507 names[uinfo->value.enumerated.item]);
3508 strlcpy(uinfo->value.enumerated.name,
3509 names[uinfo->value.enumerated.item],
3510 sizeof(uinfo->value.enumerated.name));
3511 return 0;
3512}
3513
3514static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3515 struct snd_ctl_elem_info *uinfo)
3516{
3517 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3518
3519 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3520 uinfo->count = 1;
3521
3522 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3523 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3524
3525 return 0;
3526}
3527static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3528 struct snd_ctl_elem_value *ucontrol)
3529{
3530 u16 fe_id = 0;
3531
3532 fe_id = ((struct soc_enum *)
3533 kcontrol->private_value)->shift_l;
3534 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3535 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3536 return -EINVAL;
3537 }
3538
3539 pr_debug("%s: FE %d %s\n", __func__,
3540 fe_id,
3541 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3542 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3543 return 0;
3544}
3545
3546static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3547 struct snd_ctl_elem_value *ucontrol)
3548{
3549 u16 fe_id = 0;
3550
3551 fe_id = ((struct soc_enum *)
3552 kcontrol->private_value)->shift_l;
3553 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3554 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3555 return -EINVAL;
3556 }
3557
3558 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3559 pr_debug("%s: %s FE %d\n", __func__,
3560 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3561 fe_id);
3562 return 0;
3563}
3564
3565static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3566 struct snd_ctl_elem_info *uinfo)
3567{
3568 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3569
3570 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3571 uinfo->count = 1;
3572
3573 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3574 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3575
3576 return 0;
3577}
3578
3579static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3580 struct snd_ctl_elem_value *ucontrol)
3581{
3582 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3583 u16 fe_id = 0, in_ch = 0;
3584
3585 fe_id = e->shift_l;
3586 in_ch = e->shift_r;
3587 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3588 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3589 return -EINVAL;
3590 }
3591 if (in_ch >= ADM_MAX_CHANNELS) {
3592 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3593 return -EINVAL;
3594 }
3595
3596 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3597 return 1;
3598}
3599
3600static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3601 struct snd_ctl_elem_value *ucontrol)
3602{
3603 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3604 u16 fe_id = 0, in_ch = 0;
3605
3606 fe_id = e->shift_l;
3607 in_ch = e->shift_r;
3608 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3609 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3610 return -EINVAL;
3611 }
3612 if (in_ch >= ADM_MAX_CHANNELS) {
3613 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3614 return -EINVAL;
3615 }
3616
3617 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3618 return 1;
3619}
3620
3621
3622static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3623 struct snd_ctl_elem_info *uinfo)
3624{
3625 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3626 uinfo->count = ADM_MAX_CHANNELS;
3627 uinfo->value.integer.min = 0;
3628 uinfo->value.integer.max = WEIGHT_0_DB;
3629
3630 return 0;
3631}
3632
3633static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3634 struct snd_ctl_elem_value *ucontrol)
3635{
3636 u16 fe_id = 0, out_ch = 0;
3637 int i, weight;
3638
3639 fe_id = ((struct soc_multi_mixer_control *)
3640 kcontrol->private_value)->shift;
3641 out_ch = ((struct soc_multi_mixer_control *)
3642 kcontrol->private_value)->rshift;
3643 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3644 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3645 return -EINVAL;
3646 }
3647 if (out_ch >= ADM_MAX_CHANNELS) {
3648 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3649 return -EINVAL;
3650 }
3651
3652 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3653 __func__, fe_id,
3654 ucontrol->value.integer.value[0],
3655 ucontrol->value.integer.value[1],
3656 ucontrol->value.integer.value[2],
3657 ucontrol->value.integer.value[3],
3658 ucontrol->value.integer.value[4],
3659 ucontrol->value.integer.value[5],
3660 ucontrol->value.integer.value[6],
3661 ucontrol->value.integer.value[7]);
3662
3663 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3664 weight = ucontrol->value.integer.value[i];
3665 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3666 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3667 __func__, fe_id, out_ch, i,
3668 channel_mixer[fe_id].channel_weight[out_ch][i]);
3669 }
3670
3671 return 0;
3672}
3673
3674static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3675 struct snd_ctl_elem_value *ucontrol)
3676{
3677 u16 fe_id = 0, out_ch = 0;
3678 int i;
3679
3680 fe_id = ((struct soc_multi_mixer_control *)
3681 kcontrol->private_value)->shift;
3682 out_ch = ((struct soc_multi_mixer_control *)
3683 kcontrol->private_value)->rshift;
3684 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3685 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3686 return -EINVAL;
3687 }
3688 if (out_ch >= ADM_MAX_CHANNELS) {
3689 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3690 return -EINVAL;
3691 }
3692
3693 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3694 ucontrol->value.integer.value[i] =
3695 channel_mixer[fe_id].channel_weight[out_ch][i];
3696
3697 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3698 __func__, fe_id,
3699 ucontrol->value.integer.value[0],
3700 ucontrol->value.integer.value[1],
3701 ucontrol->value.integer.value[2],
3702 ucontrol->value.integer.value[3],
3703 ucontrol->value.integer.value[4],
3704 ucontrol->value.integer.value[5],
3705 ucontrol->value.integer.value[6],
3706 ucontrol->value.integer.value[7]);
3707
3708 return 0;
3709}
3710
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303711static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3712 struct snd_ctl_elem_info *uinfo)
3713{
3714 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3715 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3716 /* Valid channel map value ranges from 1 to 64 */
3717 uinfo->value.integer.min = 0;
3718 uinfo->value.integer.max = 64;
3719
3720 return 0;
3721}
3722
3723static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3724 struct snd_ctl_elem_value *ucontrol)
3725{
3726 u16 fe_id = 0;
3727 int i, ch_map;
3728
3729 fe_id = ((struct soc_multi_mixer_control *)
3730 kcontrol->private_value)->shift;
3731 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3732 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3733 return -EINVAL;
3734 }
3735
3736 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3737 ch_map = ucontrol->value.integer.value[i];
3738 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3739 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3740 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3741 }
3742
3743 /* Make override_out_ch_map false if ch map is reset */
3744 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3745 channel_mixer[fe_id].override_out_ch_map = false;
3746 else
3747 channel_mixer[fe_id].override_out_ch_map = true;
3748
3749 return 0;
3750}
3751
3752static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3753 struct snd_ctl_elem_value *ucontrol)
3754{
3755 u16 fe_id = 0;
3756 int i;
3757
3758 fe_id = ((struct soc_multi_mixer_control *)
3759 kcontrol->private_value)->shift;
3760 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3761 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3762 return -EINVAL;
3763 }
3764
3765 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3766 ucontrol->value.integer.value[i] =
3767 channel_mixer[fe_id].out_ch_map[i];
3768
3769 return 0;
3770}
3771
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303772static const struct snd_kcontrol_new channel_mixer_controls[] = {
3773 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3774 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3775 msm_pcm_get_channel_rule_index,
3776 msm_pcm_put_channel_rule_index),
3777 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3778 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3779 msm_pcm_get_channel_rule_index,
3780 msm_pcm_put_channel_rule_index),
3781 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3782 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3783 msm_pcm_get_channel_rule_index,
3784 msm_pcm_put_channel_rule_index),
3785 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3786 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3787 msm_pcm_get_channel_rule_index,
3788 msm_pcm_put_channel_rule_index),
3789 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3790 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3791 msm_pcm_get_channel_rule_index,
3792 msm_pcm_put_channel_rule_index),
3793 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3794 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3795 msm_pcm_get_channel_rule_index,
3796 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303797 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3798 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3799 msm_pcm_get_channel_rule_index,
3800 msm_pcm_put_channel_rule_index),
3801 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3802 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3803 msm_pcm_get_channel_rule_index,
3804 msm_pcm_put_channel_rule_index),
3805 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3806 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3807 msm_pcm_get_channel_rule_index,
3808 msm_pcm_put_channel_rule_index),
3809 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3810 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3811 msm_pcm_get_channel_rule_index,
3812 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303813 SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
3814 MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
3815 msm_pcm_get_channel_rule_index,
3816 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303817
3818 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303819 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303820 msm_pcm_get_out_chs,
3821 msm_pcm_put_out_chs),
3822 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3823 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3824 msm_pcm_get_out_chs,
3825 msm_pcm_put_out_chs),
3826 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3827 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3828 msm_pcm_get_out_chs,
3829 msm_pcm_put_out_chs),
3830 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3831 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3832 msm_pcm_get_out_chs,
3833 msm_pcm_put_out_chs),
3834 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3835 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3836 msm_pcm_get_out_chs,
3837 msm_pcm_put_out_chs),
3838 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3839 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3840 msm_pcm_get_out_chs,
3841 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303842 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3843 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3844 msm_pcm_get_out_chs,
3845 msm_pcm_put_out_chs),
3846 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3847 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3848 msm_pcm_get_out_chs,
3849 msm_pcm_put_out_chs),
3850 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3851 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3852 msm_pcm_get_out_chs,
3853 msm_pcm_put_out_chs),
3854 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3855 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3856 msm_pcm_get_out_chs,
3857 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303858 SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
3859 MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
3860 msm_pcm_get_out_chs,
3861 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303862 {
3863 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3864 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3865 .name = "MultiMedia1 Channel Mixer",
3866 .info = msm_pcm_channel_mixer_info,
3867 .get = msm_pcm_channel_mixer_get,
3868 .put = msm_pcm_channel_mixer_put,
3869 .private_value = (unsigned long)&(mm1_channel_mux)
3870 },
3871 {
3872 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3873 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3874 .name = "MultiMedia2 Channel Mixer",
3875 .info = msm_pcm_channel_mixer_info,
3876 .get = msm_pcm_channel_mixer_get,
3877 .put = msm_pcm_channel_mixer_put,
3878 .private_value = (unsigned long)&(mm2_channel_mux)
3879 },
3880 {
3881 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3882 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3883 .name = "MultiMedia3 Channel Mixer",
3884 .info = msm_pcm_channel_mixer_info,
3885 .get = msm_pcm_channel_mixer_get,
3886 .put = msm_pcm_channel_mixer_put,
3887 .private_value = (unsigned long)&(mm3_channel_mux)
3888 },
3889 {
3890 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3891 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3892 .name = "MultiMedia4 Channel Mixer",
3893 .info = msm_pcm_channel_mixer_info,
3894 .get = msm_pcm_channel_mixer_get,
3895 .put = msm_pcm_channel_mixer_put,
3896 .private_value = (unsigned long)&(mm4_channel_mux)
3897 },
3898 {
3899 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3900 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303901 .name = "MultiMedia18 Channel Mixer",
3902 .info = msm_pcm_channel_mixer_info,
3903 .get = msm_pcm_channel_mixer_get,
3904 .put = msm_pcm_channel_mixer_put,
3905 .private_value = (unsigned long)&(mm18_channel_mux)
3906 },
3907 {
3908 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3909 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3910 .name = "MultiMedia19 Channel Mixer",
3911 .info = msm_pcm_channel_mixer_info,
3912 .get = msm_pcm_channel_mixer_get,
3913 .put = msm_pcm_channel_mixer_put,
3914 .private_value = (unsigned long)&(mm19_channel_mux)
3915 },
3916 {
3917 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3918 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3919 .name = "MultiMedia28 Channel Mixer",
3920 .info = msm_pcm_channel_mixer_info,
3921 .get = msm_pcm_channel_mixer_get,
3922 .put = msm_pcm_channel_mixer_put,
3923 .private_value = (unsigned long)&(mm28_channel_mux)
3924 },
3925 {
3926 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3927 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3928 .name = "MultiMedia29 Channel Mixer",
3929 .info = msm_pcm_channel_mixer_info,
3930 .get = msm_pcm_channel_mixer_get,
3931 .put = msm_pcm_channel_mixer_put,
3932 .private_value = (unsigned long)&(mm29_channel_mux)
3933 },
3934 {
3935 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3936 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303937 .name = "MultiMedia30 Channel Mixer",
3938 .info = msm_pcm_channel_mixer_info,
3939 .get = msm_pcm_channel_mixer_get,
3940 .put = msm_pcm_channel_mixer_put,
3941 .private_value = (unsigned long)&(mm30_channel_mux)
3942 },
3943 {
3944 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3945 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303946 .name = "MultiMedia1 Output Channel1",
3947 .info = msm_pcm_channel_weight_info,
3948 .get = msm_pcm_channel_weight_get,
3949 .put = msm_pcm_channel_weight_put,
3950 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3951 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3952 },
3953 {
3954 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3955 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3956 .name = "MultiMedia1 Output Channel2",
3957 .info = msm_pcm_channel_weight_info,
3958 .get = msm_pcm_channel_weight_get,
3959 .put = msm_pcm_channel_weight_put,
3960 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3961 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3962 },
3963 {
3964 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3965 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3966 .name = "MultiMedia1 Output Channel3",
3967 .info = msm_pcm_channel_weight_info,
3968 .get = msm_pcm_channel_weight_get,
3969 .put = msm_pcm_channel_weight_put,
3970 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3971 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3972 },
3973 {
3974 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3975 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3976 .name = "MultiMedia1 Output Channel4",
3977 .info = msm_pcm_channel_weight_info,
3978 .get = msm_pcm_channel_weight_get,
3979 .put = msm_pcm_channel_weight_put,
3980 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3981 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3982 },
3983 {
3984 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3985 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3986 .name = "MultiMedia1 Output Channel5",
3987 .info = msm_pcm_channel_weight_info,
3988 .get = msm_pcm_channel_weight_get,
3989 .put = msm_pcm_channel_weight_put,
3990 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3991 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3992 },
3993 {
3994 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3995 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3996 .name = "MultiMedia1 Output Channel6",
3997 .info = msm_pcm_channel_weight_info,
3998 .get = msm_pcm_channel_weight_get,
3999 .put = msm_pcm_channel_weight_put,
4000 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4001 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
4002 },
4003 {
4004 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4005 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4006 .name = "MultiMedia1 Output Channel7",
4007 .info = msm_pcm_channel_weight_info,
4008 .get = msm_pcm_channel_weight_get,
4009 .put = msm_pcm_channel_weight_put,
4010 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4011 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
4012 },
4013 {
4014 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4015 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4016 .name = "MultiMedia1 Output Channel8",
4017 .info = msm_pcm_channel_weight_info,
4018 .get = msm_pcm_channel_weight_get,
4019 .put = msm_pcm_channel_weight_put,
4020 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4021 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
4022 },
4023 {
4024 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4025 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304026 .name = "MultiMedia1 Output Channel9",
4027 .info = msm_pcm_channel_weight_info,
4028 .get = msm_pcm_channel_weight_get,
4029 .put = msm_pcm_channel_weight_put,
4030 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4031 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4032 },
4033 {
4034 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4035 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4036 .name = "MultiMedia1 Output Channel10",
4037 .info = msm_pcm_channel_weight_info,
4038 .get = msm_pcm_channel_weight_get,
4039 .put = msm_pcm_channel_weight_put,
4040 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4041 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4042 },
4043 {
4044 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4045 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304046 .name = "MultiMedia1 Output Channel11",
4047 .info = msm_pcm_channel_weight_info,
4048 .get = msm_pcm_channel_weight_get,
4049 .put = msm_pcm_channel_weight_put,
4050 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4051 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4052 },
4053 {
4054 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4055 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4056 .name = "MultiMedia1 Output Channel12",
4057 .info = msm_pcm_channel_weight_info,
4058 .get = msm_pcm_channel_weight_get,
4059 .put = msm_pcm_channel_weight_put,
4060 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4061 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4062 },
4063 {
4064 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4065 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4066 .name = "MultiMedia1 Output Channel13",
4067 .info = msm_pcm_channel_weight_info,
4068 .get = msm_pcm_channel_weight_get,
4069 .put = msm_pcm_channel_weight_put,
4070 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4071 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4072 },
4073 {
4074 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4075 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4076 .name = "MultiMedia1 Output Channel14",
4077 .info = msm_pcm_channel_weight_info,
4078 .get = msm_pcm_channel_weight_get,
4079 .put = msm_pcm_channel_weight_put,
4080 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4081 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4082 },
4083 {
4084 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4085 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304086 .name = "MultiMedia2 Output Channel1",
4087 .info = msm_pcm_channel_weight_info,
4088 .get = msm_pcm_channel_weight_get,
4089 .put = msm_pcm_channel_weight_put,
4090 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4091 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4092 },
4093 {
4094 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4095 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4096 .name = "MultiMedia2 Output Channel2",
4097 .info = msm_pcm_channel_weight_info,
4098 .get = msm_pcm_channel_weight_get,
4099 .put = msm_pcm_channel_weight_put,
4100 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4101 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4102 },
4103 {
4104 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4105 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4106 .name = "MultiMedia2 Output Channel3",
4107 .info = msm_pcm_channel_weight_info,
4108 .get = msm_pcm_channel_weight_get,
4109 .put = msm_pcm_channel_weight_put,
4110 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4111 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4112 },
4113 {
4114 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4115 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4116 .name = "MultiMedia3 Output Channel1",
4117 .info = msm_pcm_channel_weight_info,
4118 .get = msm_pcm_channel_weight_get,
4119 .put = msm_pcm_channel_weight_put,
4120 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4121 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4122 },
4123 {
4124 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4125 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4126 .name = "MultiMedia3 Output Channel2",
4127 .info = msm_pcm_channel_weight_info,
4128 .get = msm_pcm_channel_weight_get,
4129 .put = msm_pcm_channel_weight_put,
4130 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4131 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4132 },
4133 {
4134 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4135 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304136 .name = "MultiMedia18 Output Channel1",
4137 .info = msm_pcm_channel_weight_info,
4138 .get = msm_pcm_channel_weight_get,
4139 .put = msm_pcm_channel_weight_put,
4140 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4141 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4142 },
4143 {
4144 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4145 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4146 .name = "MultiMedia18 Output Channel2",
4147 .info = msm_pcm_channel_weight_info,
4148 .get = msm_pcm_channel_weight_get,
4149 .put = msm_pcm_channel_weight_put,
4150 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4151 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4152 },
4153 {
4154 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4155 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4156 .name = "MultiMedia18 Output Channel3",
4157 .info = msm_pcm_channel_weight_info,
4158 .get = msm_pcm_channel_weight_get,
4159 .put = msm_pcm_channel_weight_put,
4160 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4161 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4162 },
4163 {
4164 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4165 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4166 .name = "MultiMedia18 Output Channel4",
4167 .info = msm_pcm_channel_weight_info,
4168 .get = msm_pcm_channel_weight_get,
4169 .put = msm_pcm_channel_weight_put,
4170 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4171 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4172 },
4173 {
4174 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4175 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4176 .name = "MultiMedia18 Output Channel5",
4177 .info = msm_pcm_channel_weight_info,
4178 .get = msm_pcm_channel_weight_get,
4179 .put = msm_pcm_channel_weight_put,
4180 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4181 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4182 },
4183 {
4184 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4185 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4186 .name = "MultiMedia18 Output Channel6",
4187 .info = msm_pcm_channel_weight_info,
4188 .get = msm_pcm_channel_weight_get,
4189 .put = msm_pcm_channel_weight_put,
4190 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4191 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4192 },
4193 {
4194 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4195 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4196 .name = "MultiMedia18 Output Channel7",
4197 .info = msm_pcm_channel_weight_info,
4198 .get = msm_pcm_channel_weight_get,
4199 .put = msm_pcm_channel_weight_put,
4200 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4201 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4202 },
4203 {
4204 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4205 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4206 .name = "MultiMedia18 Output Channel8",
4207 .info = msm_pcm_channel_weight_info,
4208 .get = msm_pcm_channel_weight_get,
4209 .put = msm_pcm_channel_weight_put,
4210 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4211 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4212 },
4213 {
4214 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4215 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4216 .name = "MultiMedia18 Output Channel9",
4217 .info = msm_pcm_channel_weight_info,
4218 .get = msm_pcm_channel_weight_get,
4219 .put = msm_pcm_channel_weight_put,
4220 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4221 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4222 },
4223 {
4224 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4225 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4226 .name = "MultiMedia18 Output Channel10",
4227 .info = msm_pcm_channel_weight_info,
4228 .get = msm_pcm_channel_weight_get,
4229 .put = msm_pcm_channel_weight_put,
4230 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4231 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4232 },
4233 {
4234 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4235 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4236 .name = "MultiMedia18 Output Channel11",
4237 .info = msm_pcm_channel_weight_info,
4238 .get = msm_pcm_channel_weight_get,
4239 .put = msm_pcm_channel_weight_put,
4240 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4241 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4242 },
4243 {
4244 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4245 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4246 .name = "MultiMedia18 Output Channel12",
4247 .info = msm_pcm_channel_weight_info,
4248 .get = msm_pcm_channel_weight_get,
4249 .put = msm_pcm_channel_weight_put,
4250 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4251 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4252 },
4253 {
4254 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4255 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4256 .name = "MultiMedia18 Output Channel13",
4257 .info = msm_pcm_channel_weight_info,
4258 .get = msm_pcm_channel_weight_get,
4259 .put = msm_pcm_channel_weight_put,
4260 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4261 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4262 },
4263 {
4264 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4265 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4266 .name = "MultiMedia18 Output Channel14",
4267 .info = msm_pcm_channel_weight_info,
4268 .get = msm_pcm_channel_weight_get,
4269 .put = msm_pcm_channel_weight_put,
4270 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4271 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4272 },
4273 {
4274 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4275 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4276 .name = "MultiMedia19 Output Channel1",
4277 .info = msm_pcm_channel_weight_info,
4278 .get = msm_pcm_channel_weight_get,
4279 .put = msm_pcm_channel_weight_put,
4280 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4281 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4282 },
4283 {
4284 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4285 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4286 .name = "MultiMedia19 Output Channel2",
4287 .info = msm_pcm_channel_weight_info,
4288 .get = msm_pcm_channel_weight_get,
4289 .put = msm_pcm_channel_weight_put,
4290 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4291 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4292 },
4293 {
4294 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4295 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4296 .name = "MultiMedia19 Output Channel3",
4297 .info = msm_pcm_channel_weight_info,
4298 .get = msm_pcm_channel_weight_get,
4299 .put = msm_pcm_channel_weight_put,
4300 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4301 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4302 },
4303 {
4304 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4305 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4306 .name = "MultiMedia19 Output Channel4",
4307 .info = msm_pcm_channel_weight_info,
4308 .get = msm_pcm_channel_weight_get,
4309 .put = msm_pcm_channel_weight_put,
4310 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4311 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4312 },
4313 {
4314 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4315 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4316 .name = "MultiMedia19 Output Channel5",
4317 .info = msm_pcm_channel_weight_info,
4318 .get = msm_pcm_channel_weight_get,
4319 .put = msm_pcm_channel_weight_put,
4320 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4321 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4322 },
4323 {
4324 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4325 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4326 .name = "MultiMedia19 Output Channel6",
4327 .info = msm_pcm_channel_weight_info,
4328 .get = msm_pcm_channel_weight_get,
4329 .put = msm_pcm_channel_weight_put,
4330 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4331 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4332 },
4333 {
4334 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4335 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4336 .name = "MultiMedia19 Output Channel7",
4337 .info = msm_pcm_channel_weight_info,
4338 .get = msm_pcm_channel_weight_get,
4339 .put = msm_pcm_channel_weight_put,
4340 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4341 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4342 },
4343 {
4344 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4345 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4346 .name = "MultiMedia19 Output Channel8",
4347 .info = msm_pcm_channel_weight_info,
4348 .get = msm_pcm_channel_weight_get,
4349 .put = msm_pcm_channel_weight_put,
4350 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4351 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4352 },
4353 {
4354 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4355 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4356 .name = "MultiMedia19 Output Channel9",
4357 .info = msm_pcm_channel_weight_info,
4358 .get = msm_pcm_channel_weight_get,
4359 .put = msm_pcm_channel_weight_put,
4360 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4361 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4362 },
4363 {
4364 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4365 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4366 .name = "MultiMedia19 Output Channel10",
4367 .info = msm_pcm_channel_weight_info,
4368 .get = msm_pcm_channel_weight_get,
4369 .put = msm_pcm_channel_weight_put,
4370 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4371 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4372 },
4373 {
4374 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4375 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4376 .name = "MultiMedia19 Output Channel11",
4377 .info = msm_pcm_channel_weight_info,
4378 .get = msm_pcm_channel_weight_get,
4379 .put = msm_pcm_channel_weight_put,
4380 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4381 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4382 },
4383 {
4384 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4385 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4386 .name = "MultiMedia19 Output Channel12",
4387 .info = msm_pcm_channel_weight_info,
4388 .get = msm_pcm_channel_weight_get,
4389 .put = msm_pcm_channel_weight_put,
4390 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4391 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4392 },
4393 {
4394 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4395 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4396 .name = "MultiMedia19 Output Channel13",
4397 .info = msm_pcm_channel_weight_info,
4398 .get = msm_pcm_channel_weight_get,
4399 .put = msm_pcm_channel_weight_put,
4400 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4401 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4402 },
4403 {
4404 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4405 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4406 .name = "MultiMedia19 Output Channel14",
4407 .info = msm_pcm_channel_weight_info,
4408 .get = msm_pcm_channel_weight_get,
4409 .put = msm_pcm_channel_weight_put,
4410 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4411 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4412 },
4413 {
4414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4415 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4416 .name = "MultiMedia28 Output Channel1",
4417 .info = msm_pcm_channel_weight_info,
4418 .get = msm_pcm_channel_weight_get,
4419 .put = msm_pcm_channel_weight_put,
4420 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4421 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4422 },
4423 {
4424 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4425 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4426 .name = "MultiMedia28 Output Channel2",
4427 .info = msm_pcm_channel_weight_info,
4428 .get = msm_pcm_channel_weight_get,
4429 .put = msm_pcm_channel_weight_put,
4430 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4431 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4432 },
4433 {
4434 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4435 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4436 .name = "MultiMedia28 Output Channel3",
4437 .info = msm_pcm_channel_weight_info,
4438 .get = msm_pcm_channel_weight_get,
4439 .put = msm_pcm_channel_weight_put,
4440 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4441 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4442 },
4443 {
4444 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4445 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4446 .name = "MultiMedia28 Output Channel4",
4447 .info = msm_pcm_channel_weight_info,
4448 .get = msm_pcm_channel_weight_get,
4449 .put = msm_pcm_channel_weight_put,
4450 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4451 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4452 },
4453 {
4454 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4455 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4456 .name = "MultiMedia28 Output Channel5",
4457 .info = msm_pcm_channel_weight_info,
4458 .get = msm_pcm_channel_weight_get,
4459 .put = msm_pcm_channel_weight_put,
4460 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4461 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4462 },
4463 {
4464 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4465 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4466 .name = "MultiMedia28 Output Channel6",
4467 .info = msm_pcm_channel_weight_info,
4468 .get = msm_pcm_channel_weight_get,
4469 .put = msm_pcm_channel_weight_put,
4470 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4471 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4472 },
4473 {
4474 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4475 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4476 .name = "MultiMedia28 Output Channel7",
4477 .info = msm_pcm_channel_weight_info,
4478 .get = msm_pcm_channel_weight_get,
4479 .put = msm_pcm_channel_weight_put,
4480 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4481 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4482 },
4483 {
4484 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4485 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4486 .name = "MultiMedia28 Output Channel8",
4487 .info = msm_pcm_channel_weight_info,
4488 .get = msm_pcm_channel_weight_get,
4489 .put = msm_pcm_channel_weight_put,
4490 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4491 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4492 },
4493 {
4494 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4495 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4496 .name = "MultiMedia28 Output Channel9",
4497 .info = msm_pcm_channel_weight_info,
4498 .get = msm_pcm_channel_weight_get,
4499 .put = msm_pcm_channel_weight_put,
4500 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4501 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4502 },
4503 {
4504 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4505 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4506 .name = "MultiMedia28 Output Channel10",
4507 .info = msm_pcm_channel_weight_info,
4508 .get = msm_pcm_channel_weight_get,
4509 .put = msm_pcm_channel_weight_put,
4510 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4511 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4512 },
4513 {
4514 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4515 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4516 .name = "MultiMedia28 Output Channel11",
4517 .info = msm_pcm_channel_weight_info,
4518 .get = msm_pcm_channel_weight_get,
4519 .put = msm_pcm_channel_weight_put,
4520 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4521 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4522 },
4523 {
4524 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4525 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4526 .name = "MultiMedia28 Output Channel12",
4527 .info = msm_pcm_channel_weight_info,
4528 .get = msm_pcm_channel_weight_get,
4529 .put = msm_pcm_channel_weight_put,
4530 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4531 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4532 },
4533 {
4534 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4535 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4536 .name = "MultiMedia28 Output Channel13",
4537 .info = msm_pcm_channel_weight_info,
4538 .get = msm_pcm_channel_weight_get,
4539 .put = msm_pcm_channel_weight_put,
4540 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4541 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4542 },
4543 {
4544 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4545 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4546 .name = "MultiMedia28 Output Channel14",
4547 .info = msm_pcm_channel_weight_info,
4548 .get = msm_pcm_channel_weight_get,
4549 .put = msm_pcm_channel_weight_put,
4550 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4551 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4552 },
4553 {
4554 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4555 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4556 .name = "MultiMedia29 Output Channel1",
4557 .info = msm_pcm_channel_weight_info,
4558 .get = msm_pcm_channel_weight_get,
4559 .put = msm_pcm_channel_weight_put,
4560 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4561 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4562 },
4563 {
4564 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4565 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4566 .name = "MultiMedia29 Output Channel2",
4567 .info = msm_pcm_channel_weight_info,
4568 .get = msm_pcm_channel_weight_get,
4569 .put = msm_pcm_channel_weight_put,
4570 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4571 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4572 },
4573 {
4574 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4575 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4576 .name = "MultiMedia29 Output Channel3",
4577 .info = msm_pcm_channel_weight_info,
4578 .get = msm_pcm_channel_weight_get,
4579 .put = msm_pcm_channel_weight_put,
4580 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4581 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4582 },
4583 {
4584 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4585 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4586 .name = "MultiMedia29 Output Channel4",
4587 .info = msm_pcm_channel_weight_info,
4588 .get = msm_pcm_channel_weight_get,
4589 .put = msm_pcm_channel_weight_put,
4590 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4591 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4592 },
4593 {
4594 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4595 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4596 .name = "MultiMedia29 Output Channel5",
4597 .info = msm_pcm_channel_weight_info,
4598 .get = msm_pcm_channel_weight_get,
4599 .put = msm_pcm_channel_weight_put,
4600 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4601 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4602 },
4603 {
4604 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4605 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4606 .name = "MultiMedia29 Output Channel6",
4607 .info = msm_pcm_channel_weight_info,
4608 .get = msm_pcm_channel_weight_get,
4609 .put = msm_pcm_channel_weight_put,
4610 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4611 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4612 },
4613 {
4614 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4615 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4616 .name = "MultiMedia29 Output Channel7",
4617 .info = msm_pcm_channel_weight_info,
4618 .get = msm_pcm_channel_weight_get,
4619 .put = msm_pcm_channel_weight_put,
4620 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4621 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4622 },
4623 {
4624 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4625 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4626 .name = "MultiMedia29 Output Channel8",
4627 .info = msm_pcm_channel_weight_info,
4628 .get = msm_pcm_channel_weight_get,
4629 .put = msm_pcm_channel_weight_put,
4630 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4631 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4632 },
4633 {
4634 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4635 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4636 .name = "MultiMedia29 Output Channel9",
4637 .info = msm_pcm_channel_weight_info,
4638 .get = msm_pcm_channel_weight_get,
4639 .put = msm_pcm_channel_weight_put,
4640 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4641 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4642 },
4643 {
4644 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4645 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4646 .name = "MultiMedia29 Output Channel10",
4647 .info = msm_pcm_channel_weight_info,
4648 .get = msm_pcm_channel_weight_get,
4649 .put = msm_pcm_channel_weight_put,
4650 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4651 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4652 },
4653 {
4654 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4655 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4656 .name = "MultiMedia29 Output Channel11",
4657 .info = msm_pcm_channel_weight_info,
4658 .get = msm_pcm_channel_weight_get,
4659 .put = msm_pcm_channel_weight_put,
4660 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4661 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4662 },
4663 {
4664 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4665 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4666 .name = "MultiMedia29 Output Channel12",
4667 .info = msm_pcm_channel_weight_info,
4668 .get = msm_pcm_channel_weight_get,
4669 .put = msm_pcm_channel_weight_put,
4670 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4671 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4672 },
4673 {
4674 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4675 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4676 .name = "MultiMedia29 Output Channel13",
4677 .info = msm_pcm_channel_weight_info,
4678 .get = msm_pcm_channel_weight_get,
4679 .put = msm_pcm_channel_weight_put,
4680 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4681 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4682 },
4683 {
4684 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4685 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4686 .name = "MultiMedia29 Output Channel14",
4687 .info = msm_pcm_channel_weight_info,
4688 .get = msm_pcm_channel_weight_get,
4689 .put = msm_pcm_channel_weight_put,
4690 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4691 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4692 },
4693 {
4694 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4695 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304696 .name = "MultiMedia30 Output Channel1",
4697 .info = msm_pcm_channel_weight_info,
4698 .get = msm_pcm_channel_weight_get,
4699 .put = msm_pcm_channel_weight_put,
4700 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4701 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
4702 },
4703 {
4704 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4705 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4706 .name = "MultiMedia30 Output Channel2",
4707 .info = msm_pcm_channel_weight_info,
4708 .get = msm_pcm_channel_weight_get,
4709 .put = msm_pcm_channel_weight_put,
4710 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4711 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
4712 },
4713 {
4714 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4715 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4716 .name = "MultiMedia30 Output Channel3",
4717 .info = msm_pcm_channel_weight_info,
4718 .get = msm_pcm_channel_weight_get,
4719 .put = msm_pcm_channel_weight_put,
4720 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4721 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
4722 },
4723 {
4724 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4725 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4726 .name = "MultiMedia30 Output Channel4",
4727 .info = msm_pcm_channel_weight_info,
4728 .get = msm_pcm_channel_weight_get,
4729 .put = msm_pcm_channel_weight_put,
4730 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4731 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
4732 },
4733 {
4734 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4735 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4736 .name = "MultiMedia30 Output Channel5",
4737 .info = msm_pcm_channel_weight_info,
4738 .get = msm_pcm_channel_weight_get,
4739 .put = msm_pcm_channel_weight_put,
4740 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4741 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
4742 },
4743 {
4744 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4745 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4746 .name = "MultiMedia30 Output Channel6",
4747 .info = msm_pcm_channel_weight_info,
4748 .get = msm_pcm_channel_weight_get,
4749 .put = msm_pcm_channel_weight_put,
4750 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4751 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
4752 },
4753 {
4754 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4755 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4756 .name = "MultiMedia30 Output Channel7",
4757 .info = msm_pcm_channel_weight_info,
4758 .get = msm_pcm_channel_weight_get,
4759 .put = msm_pcm_channel_weight_put,
4760 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4761 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
4762 },
4763 {
4764 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4765 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4766 .name = "MultiMedia30 Output Channel8",
4767 .info = msm_pcm_channel_weight_info,
4768 .get = msm_pcm_channel_weight_get,
4769 .put = msm_pcm_channel_weight_put,
4770 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4771 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
4772 },
4773 {
4774 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4775 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4776 .name = "MultiMedia30 Output Channel9",
4777 .info = msm_pcm_channel_weight_info,
4778 .get = msm_pcm_channel_weight_get,
4779 .put = msm_pcm_channel_weight_put,
4780 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4781 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
4782 },
4783 {
4784 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4785 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4786 .name = "MultiMedia30 Output Channel10",
4787 .info = msm_pcm_channel_weight_info,
4788 .get = msm_pcm_channel_weight_get,
4789 .put = msm_pcm_channel_weight_put,
4790 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4791 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
4792 },
4793 {
4794 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4795 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4796 .name = "MultiMedia30 Output Channel11",
4797 .info = msm_pcm_channel_weight_info,
4798 .get = msm_pcm_channel_weight_get,
4799 .put = msm_pcm_channel_weight_put,
4800 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4801 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
4802 },
4803 {
4804 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4805 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4806 .name = "MultiMedia30 Output Channel12",
4807 .info = msm_pcm_channel_weight_info,
4808 .get = msm_pcm_channel_weight_get,
4809 .put = msm_pcm_channel_weight_put,
4810 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4811 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
4812 },
4813 {
4814 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4815 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4816 .name = "MultiMedia30 Output Channel13",
4817 .info = msm_pcm_channel_weight_info,
4818 .get = msm_pcm_channel_weight_get,
4819 .put = msm_pcm_channel_weight_put,
4820 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4821 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
4822 },
4823 {
4824 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4825 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4826 .name = "MultiMedia30 Output Channel14",
4827 .info = msm_pcm_channel_weight_info,
4828 .get = msm_pcm_channel_weight_get,
4829 .put = msm_pcm_channel_weight_put,
4830 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4831 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
4832 },
4833 {
4834 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4835 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304836 .name = "MultiMedia1 Channel1",
4837 .info = msm_pcm_channel_input_be_info,
4838 .get = msm_pcm_channel_input_be_get,
4839 .put = msm_pcm_channel_input_be_put,
4840 .private_value = (unsigned long)&(mm1_ch1_enum)
4841 },
4842 {
4843 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4844 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4845 .name = "MultiMedia1 Channel2",
4846 .info = msm_pcm_channel_input_be_info,
4847 .get = msm_pcm_channel_input_be_get,
4848 .put = msm_pcm_channel_input_be_put,
4849 .private_value = (unsigned long)&(mm1_ch2_enum)
4850 },
4851 {
4852 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4853 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4854 .name = "MultiMedia1 Channel3",
4855 .info = msm_pcm_channel_input_be_info,
4856 .get = msm_pcm_channel_input_be_get,
4857 .put = msm_pcm_channel_input_be_put,
4858 .private_value = (unsigned long)&(mm1_ch3_enum)
4859 },
4860 {
4861 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4862 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4863 .name = "MultiMedia1 Channel4",
4864 .info = msm_pcm_channel_input_be_info,
4865 .get = msm_pcm_channel_input_be_get,
4866 .put = msm_pcm_channel_input_be_put,
4867 .private_value = (unsigned long)&(mm1_ch4_enum)
4868 },
4869 {
4870 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4871 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4872 .name = "MultiMedia1 Channel5",
4873 .info = msm_pcm_channel_input_be_info,
4874 .get = msm_pcm_channel_input_be_get,
4875 .put = msm_pcm_channel_input_be_put,
4876 .private_value = (unsigned long)&(mm1_ch5_enum)
4877 },
4878 {
4879 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4880 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4881 .name = "MultiMedia1 Channel6",
4882 .info = msm_pcm_channel_input_be_info,
4883 .get = msm_pcm_channel_input_be_get,
4884 .put = msm_pcm_channel_input_be_put,
4885 .private_value = (unsigned long)&(mm1_ch6_enum)
4886 },
4887 {
4888 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4889 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4890 .name = "MultiMedia1 Channel7",
4891 .info = msm_pcm_channel_input_be_info,
4892 .get = msm_pcm_channel_input_be_get,
4893 .put = msm_pcm_channel_input_be_put,
4894 .private_value = (unsigned long)&(mm1_ch7_enum)
4895 },
4896 {
4897 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4898 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4899 .name = "MultiMedia1 Channel8",
4900 .info = msm_pcm_channel_input_be_info,
4901 .get = msm_pcm_channel_input_be_get,
4902 .put = msm_pcm_channel_input_be_put,
4903 .private_value = (unsigned long)&(mm1_ch8_enum)
4904 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304905 {
4906 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4907 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304908 .name = "MultiMedia18 Channel1",
4909 .info = msm_pcm_channel_input_be_info,
4910 .get = msm_pcm_channel_input_be_get,
4911 .put = msm_pcm_channel_input_be_put,
4912 .private_value = (unsigned long)&(mm18_ch1_enum)
4913 },
4914 {
4915 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4916 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4917 .name = "MultiMedia18 Channel2",
4918 .info = msm_pcm_channel_input_be_info,
4919 .get = msm_pcm_channel_input_be_get,
4920 .put = msm_pcm_channel_input_be_put,
4921 .private_value = (unsigned long)&(mm18_ch2_enum)
4922 },
4923 {
4924 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4925 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4926 .name = "MultiMedia19 Channel1",
4927 .info = msm_pcm_channel_input_be_info,
4928 .get = msm_pcm_channel_input_be_get,
4929 .put = msm_pcm_channel_input_be_put,
4930 .private_value = (unsigned long)&(mm19_ch1_enum)
4931 },
4932 {
4933 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4934 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4935 .name = "MultiMedia19 Channel2",
4936 .info = msm_pcm_channel_input_be_info,
4937 .get = msm_pcm_channel_input_be_get,
4938 .put = msm_pcm_channel_input_be_put,
4939 .private_value = (unsigned long)&(mm19_ch2_enum)
4940 },
4941 {
4942 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4943 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4944 .name = "MultiMedia28 Channel1",
4945 .info = msm_pcm_channel_input_be_info,
4946 .get = msm_pcm_channel_input_be_get,
4947 .put = msm_pcm_channel_input_be_put,
4948 .private_value = (unsigned long)&(mm28_ch1_enum)
4949 },
4950 {
4951 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4952 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4953 .name = "MultiMedia28 Channel2",
4954 .info = msm_pcm_channel_input_be_info,
4955 .get = msm_pcm_channel_input_be_get,
4956 .put = msm_pcm_channel_input_be_put,
4957 .private_value = (unsigned long)&(mm28_ch2_enum)
4958 },
4959 {
4960 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4961 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4962 .name = "MultiMedia29 Channel1",
4963 .info = msm_pcm_channel_input_be_info,
4964 .get = msm_pcm_channel_input_be_get,
4965 .put = msm_pcm_channel_input_be_put,
4966 .private_value = (unsigned long)&(mm29_ch1_enum)
4967 },
4968 {
4969 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4970 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4971 .name = "MultiMedia29 Channel2",
4972 .info = msm_pcm_channel_input_be_info,
4973 .get = msm_pcm_channel_input_be_get,
4974 .put = msm_pcm_channel_input_be_put,
4975 .private_value = (unsigned long)&(mm29_ch2_enum)
4976 },
4977 {
4978 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4979 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304980 .name = "MultiMedia30 Channel1",
4981 .info = msm_pcm_channel_input_be_info,
4982 .get = msm_pcm_channel_input_be_get,
4983 .put = msm_pcm_channel_input_be_put,
4984 .private_value = (unsigned long)&(mm30_ch1_enum)
4985 },
4986 {
4987 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4988 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4989 .name = "MultiMedia30 Channel2",
4990 .info = msm_pcm_channel_input_be_info,
4991 .get = msm_pcm_channel_input_be_get,
4992 .put = msm_pcm_channel_input_be_put,
4993 .private_value = (unsigned long)&(mm30_ch2_enum)
4994 },
4995 {
4996 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4997 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304998 .name = "MultiMedia1 Output Channel Map",
4999 .info = msm_pcm_channel_output_map_info,
5000 .get = msm_pcm_channel_output_map_get,
5001 .put = msm_pcm_channel_output_map_put,
5002 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5003 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
5004 },
5005 {
5006 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5007 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5008 .name = "MultiMedia2 Output Channel Map",
5009 .info = msm_pcm_channel_output_map_info,
5010 .get = msm_pcm_channel_output_map_get,
5011 .put = msm_pcm_channel_output_map_put,
5012 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5013 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
5014 },
5015 {
5016 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5017 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5018 .name = "MultiMedia3 Output Channel Map",
5019 .info = msm_pcm_channel_output_map_info,
5020 .get = msm_pcm_channel_output_map_get,
5021 .put = msm_pcm_channel_output_map_put,
5022 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5023 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
5024 },
5025 {
5026 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5027 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5028 .name = "MultiMedia4 Output Channel Map",
5029 .info = msm_pcm_channel_output_map_info,
5030 .get = msm_pcm_channel_output_map_get,
5031 .put = msm_pcm_channel_output_map_put,
5032 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5033 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
5034 },
5035 {
5036 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5037 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5038 .name = "MultiMedia5 Output Channel Map",
5039 .info = msm_pcm_channel_output_map_info,
5040 .get = msm_pcm_channel_output_map_get,
5041 .put = msm_pcm_channel_output_map_put,
5042 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5043 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
5044 },
5045 {
5046 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5047 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5048 .name = "MultiMedia6 Output Channel Map",
5049 .info = msm_pcm_channel_output_map_info,
5050 .get = msm_pcm_channel_output_map_get,
5051 .put = msm_pcm_channel_output_map_put,
5052 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5053 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
5054 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05305055 {
5056 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5057 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5058 .name = "MultiMedia18 Output Channel Map",
5059 .info = msm_pcm_channel_output_map_info,
5060 .get = msm_pcm_channel_output_map_get,
5061 .put = msm_pcm_channel_output_map_put,
5062 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5063 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
5064 },
5065 {
5066 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5067 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5068 .name = "MultiMedia19 Output Channel Map",
5069 .info = msm_pcm_channel_output_map_info,
5070 .get = msm_pcm_channel_output_map_get,
5071 .put = msm_pcm_channel_output_map_put,
5072 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5073 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
5074 },
5075 {
5076 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5077 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5078 .name = "MultiMedia28 Output Channel Map",
5079 .info = msm_pcm_channel_output_map_info,
5080 .get = msm_pcm_channel_output_map_get,
5081 .put = msm_pcm_channel_output_map_put,
5082 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5083 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
5084 },
5085 {
5086 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5087 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5088 .name = "MultiMedia29 Output Channel Map",
5089 .info = msm_pcm_channel_output_map_info,
5090 .get = msm_pcm_channel_output_map_get,
5091 .put = msm_pcm_channel_output_map_put,
5092 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5093 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
5094 },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305095 {
5096 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5097 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5098 .name = "MultiMedia30 Output Channel Map",
5099 .info = msm_pcm_channel_output_map_info,
5100 .get = msm_pcm_channel_output_map_get,
5101 .put = msm_pcm_channel_output_map_put,
5102 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5103 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
5104 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305105};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305106
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305107static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
5108 struct snd_ctl_elem_value *ucontrol)
5109{
5110 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
5111 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
5112 ucontrol->value.integer.value[0]);
5113 return 0;
5114}
5115
5116static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
5117 struct snd_ctl_elem_value *ucontrol)
5118{
5119 msm_ec_ref_ch = ucontrol->value.integer.value[0];
5120 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
5121 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
5122 return 0;
5123}
5124
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305125static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
5126 struct snd_ctl_elem_value *ucontrol)
5127{
5128 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
5129 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
5130 ucontrol->value.integer.value[0]);
5131 return 0;
5132}
5133
5134static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
5135 struct snd_ctl_elem_value *ucontrol)
5136{
5137 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
5138 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
5139 __func__, msm_ec_ref_ch_downmixed);
5140 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
5141 return 0;
5142}
5143
5144static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
5145 struct snd_ctl_elem_value *ucontrol)
5146{
5147 int i = 0, ret = 0;
5148 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
5149 int out_channel_idx = ((struct soc_multi_mixer_control *)
5150 kcontrol->private_value)->shift;
5151
5152 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
5153 weights[i] = ucontrol->value.integer.value[i];
5154
5155 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
5156 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
5157 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
5158 return ret;
5159}
5160
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305161static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305162 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
5163 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164
5165static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
5166 struct snd_ctl_elem_value *ucontrol)
5167{
5168 switch (msm_ec_ref_bit_format) {
5169 case SNDRV_PCM_FORMAT_S24_LE:
5170 ucontrol->value.integer.value[0] = 2;
5171 break;
5172 case SNDRV_PCM_FORMAT_S16_LE:
5173 ucontrol->value.integer.value[0] = 1;
5174 break;
5175 default:
5176 ucontrol->value.integer.value[0] = 0;
5177 break;
5178 }
5179 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
5180 __func__, ucontrol->value.integer.value[0]);
5181 return 0;
5182}
5183
5184static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
5185 struct snd_ctl_elem_value *ucontrol)
5186{
5187 u16 bit_width = 0;
5188
5189 switch (ucontrol->value.integer.value[0]) {
5190 case 2:
5191 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
5192 break;
5193 case 1:
5194 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
5195 break;
5196 default:
5197 msm_ec_ref_bit_format = 0;
5198 break;
5199 }
5200
5201 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5202 bit_width = 16;
5203 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5204 bit_width = 24;
5205
5206 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5207 __func__, msm_ec_ref_bit_format);
5208 adm_ec_ref_rx_bit_width(bit_width);
5209 return 0;
5210}
5211
5212static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5213
5214static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5215 struct snd_ctl_elem_value *ucontrol)
5216{
5217 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5218 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5219 __func__, ucontrol->value.integer.value[0]);
5220 return 0;
5221}
5222
5223static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5224 struct snd_ctl_elem_value *ucontrol)
5225{
5226 switch (ucontrol->value.integer.value[0]) {
5227 case 0:
5228 msm_ec_ref_sampling_rate = 0;
5229 break;
5230 case 1:
5231 msm_ec_ref_sampling_rate = 8000;
5232 break;
5233 case 2:
5234 msm_ec_ref_sampling_rate = 16000;
5235 break;
5236 case 3:
5237 msm_ec_ref_sampling_rate = 32000;
5238 break;
5239 case 4:
5240 msm_ec_ref_sampling_rate = 44100;
5241 break;
5242 case 5:
5243 msm_ec_ref_sampling_rate = 48000;
5244 break;
5245 case 6:
5246 msm_ec_ref_sampling_rate = 96000;
5247 break;
5248 case 7:
5249 msm_ec_ref_sampling_rate = 192000;
5250 break;
5251 case 8:
5252 msm_ec_ref_sampling_rate = 384000;
5253 break;
5254 default:
5255 msm_ec_ref_sampling_rate = 48000;
5256 break;
5257 }
5258 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5259 __func__, msm_ec_ref_sampling_rate);
5260 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5261 return 0;
5262}
5263
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305264static int get_ec_ref_port_id(int value, int *index)
5265{
5266 int port_id;
5267
5268 switch (value) {
5269 case 0:
5270 *index = 0;
5271 port_id = AFE_PORT_INVALID;
5272 break;
5273 case 1:
5274 *index = 1;
5275 port_id = SLIMBUS_0_RX;
5276 break;
5277 case 2:
5278 *index = 2;
5279 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5280 break;
5281 case 3:
5282 *index = 3;
5283 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5284 break;
5285 case 4:
5286 *index = 4;
5287 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5288 break;
5289 case 5:
5290 *index = 5;
5291 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5292 break;
5293 case 6:
5294 *index = 6;
5295 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5296 break;
5297 case 7:
5298 *index = 7;
5299 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5300 break;
5301 case 9:
5302 *index = 9;
5303 port_id = SLIMBUS_5_RX;
5304 break;
5305 case 10:
5306 *index = 10;
5307 port_id = SLIMBUS_1_TX;
5308 break;
5309 case 11:
5310 *index = 11;
5311 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5312 break;
5313 case 12:
5314 *index = 12;
5315 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5316 break;
5317 case 13:
5318 *index = 13;
5319 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5320 break;
5321 case 14:
5322 *index = 14;
5323 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5324 break;
5325 case 15:
5326 *index = 15;
5327 port_id = SLIMBUS_6_RX;
5328 break;
5329 case 16:
5330 *index = 16;
5331 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5332 break;
5333 case 17:
5334 *index = 17;
5335 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5336 break;
5337 case 18:
5338 *index = 18;
5339 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5340 break;
5341 case 19:
5342 *index = 19;
5343 port_id = AFE_PORT_ID_USB_RX;
5344 break;
5345 case 20:
5346 *index = 20;
5347 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5348 break;
5349 case 21:
5350 *index = 21;
5351 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5352 break;
5353 case 22:
5354 *index = 22;
5355 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5356 break;
5357 case 23:
5358 *index = 23;
5359 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5360 break;
5361 case 24:
5362 *index = 24;
5363 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5364 break;
5365 case 25:
5366 *index = 25;
5367 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5368 break;
5369 case 26:
5370 *index = 26;
5371 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5372 break;
5373 case 27:
5374 *index = 27;
5375 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5376 break;
5377 case 28:
5378 *index = 28;
5379 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5380 break;
5381 case 29:
5382 *index = 29;
5383 port_id = SLIMBUS_7_RX;
5384 break;
5385 case 30:
5386 *index = 30;
5387 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5388 break;
5389 case 31:
5390 *index = 31;
5391 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5392 break;
5393 case 32:
5394 *index = 32;
5395 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5396 break;
5397 case 33:
5398 *index = 33;
5399 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5400 break;
5401 case 34:
5402 *index = 34;
5403 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5404 break;
5405 case 35:
5406 *index = 35;
5407 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5408 break;
5409 case 36:
5410 *index = 36;
5411 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5412 break;
5413 default:
5414 *index = 0; /* NONE */
5415 pr_err("%s: Invalid value %d\n", __func__, value);
5416 port_id = AFE_PORT_INVALID;
5417 break;
5418 }
5419
5420 return port_id;
5421}
5422
5423static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5424 struct snd_ctl_elem_value *ucontrol)
5425{
5426 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5427 mutex_lock(&routing_lock);
5428 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5429 mutex_unlock(&routing_lock);
5430
5431 return 0;
5432}
5433
5434static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5435 struct snd_ctl_elem_value *ucontrol)
5436{
5437 int value = ucontrol->value.integer.value[0];
5438
5439 mutex_lock(&routing_lock);
5440 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5441 &afe_loopback_tx_port_index);
5442 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5443 __func__, afe_loopback_tx_port_index);
5444 mutex_unlock(&routing_lock);
5445
5446 return 0;
5447}
5448
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305449static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5450 "32000", "44100", "48000", "96000", "192000", "384000"};
5451
5452static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305453 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305454 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
5455 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
5456};
5457
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305458static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5459 "PRI_MI2S_TX", "SEC_MI2S_TX",
5460 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5461 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5462 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5463 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305464 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
Vignesh Kulothunganf86a3552019-07-11 15:46:25 -07005465 "DISPLAY_PORT1",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305466 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005467 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305468 "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 -07005469 "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 +05305470};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305471
5472static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5473 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5474};
5475
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305476static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5477 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5478 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5479 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5480 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5481 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5482 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5483 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5484 msm_route_ec_ref_params_enum[0],
5485 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5486 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5487 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5488 msm_ec_ref_chmixer_weights_put),
5489 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5490 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5491 msm_ec_ref_chmixer_weights_put),
5492 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
5493 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5494 msm_ec_ref_chmixer_weights_put),
5495 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
5496 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5497 msm_ec_ref_chmixer_weights_put),
5498 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5499 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5500 msm_ec_ref_chmixer_weights_put),
5501 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5502 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5503 msm_ec_ref_chmixer_weights_put),
5504 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5505 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5506};
5507
5508static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5509 struct snd_ctl_elem_value *ucontrol)
5510{
5511 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5512 mutex_lock(&routing_lock);
5513 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5514 mutex_unlock(&routing_lock);
5515
5516 return 0;
5517}
5518
5519static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5520 struct snd_ctl_elem_value *ucontrol)
5521{
5522 int value = ucontrol->value.integer.value[0];
5523 struct snd_soc_dapm_widget *widget =
5524 snd_soc_dapm_kcontrol_widget(kcontrol);
5525 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5526 struct snd_soc_dapm_update *update = NULL;
5527
5528 mutex_lock(&routing_lock);
5529 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5530 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5531 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5532 __func__, msm_route_ec_ref_rx);
5533 mutex_unlock(&routing_lock);
5534
5535 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5536 msm_route_ec_ref_rx, e, update);
5537 return 0;
5538}
5539
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305540static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5541 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5542 msm_route_ec_ref_rx_enum[0],
5543 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5544
5545static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5546 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5547 msm_route_ec_ref_rx_enum[0],
5548 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5549
5550static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5551 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5552 msm_route_ec_ref_rx_enum[0],
5553 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5554
5555static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5556 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5557 msm_route_ec_ref_rx_enum[0],
5558 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5559
5560static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5561 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5562 msm_route_ec_ref_rx_enum[0],
5563 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5564
5565static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5566 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5567 msm_route_ec_ref_rx_enum[0],
5568 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5569
5570static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5571 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5572 msm_route_ec_ref_rx_enum[0],
5573 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5574
5575static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5576 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5577 msm_route_ec_ref_rx_enum[0],
5578 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5579
Asish Bhattacharya34504582017-08-08 12:55:01 +05305580static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5581 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5582 msm_route_ec_ref_rx_enum[0],
5583 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5584
Laxminath Kasam38070be2017-08-17 18:21:59 +05305585static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5586 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5587 msm_route_ec_ref_rx_enum[0],
5588 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5589
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305590static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5591 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5592 msm_route_ec_ref_rx_enum[0],
5593 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5594
5595static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5596 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5597 msm_route_ec_ref_rx_enum[0],
5598 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5599
5600static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5601 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5602 msm_route_ec_ref_rx_enum[0],
5603 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5604
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305605static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5606 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5607 msm_route_ec_ref_rx_enum[0],
5608 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5609
5610static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5611 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5612 msm_route_ec_ref_rx_enum[0],
5613 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5614
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305615static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5616 struct snd_ctl_elem_value *ucontrol)
5617{
5618 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5619
5620 mutex_lock(&routing_lock);
5621 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5622 mutex_unlock(&routing_lock);
5623 return 0;
5624}
5625
5626static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5627 struct snd_ctl_elem_value *ucontrol)
5628{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305629 struct snd_soc_dapm_widget *widget =
5630 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305631 int mux = ucontrol->value.enumerated.item[0];
5632 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5633 int ret = 1;
5634 bool state = true;
5635 uint16_t ext_ec_ref_port_id;
5636 struct snd_soc_dapm_update *update = NULL;
5637
5638 if (mux >= e->items) {
5639 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5640 return -EINVAL;
5641 }
5642
5643 mutex_lock(&routing_lock);
5644 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5645
5646 switch (msm_route_ext_ec_ref) {
5647 case EXT_EC_REF_PRI_MI2S_TX:
5648 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5649 break;
5650 case EXT_EC_REF_SEC_MI2S_TX:
5651 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5652 break;
5653 case EXT_EC_REF_TERT_MI2S_TX:
5654 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5655 break;
5656 case EXT_EC_REF_QUAT_MI2S_TX:
5657 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5658 break;
5659 case EXT_EC_REF_QUIN_MI2S_TX:
5660 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5661 break;
5662 case EXT_EC_REF_SLIM_1_TX:
5663 ext_ec_ref_port_id = SLIMBUS_1_TX;
5664 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005665 case EXT_EC_REF_SEC_TDM_TX:
5666 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5667 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 case EXT_EC_REF_NONE:
5669 default:
5670 ext_ec_ref_port_id = AFE_PORT_INVALID;
5671 state = false;
5672 break;
5673 }
5674
5675 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5676 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5677
5678 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5679 mutex_unlock(&routing_lock);
5680 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5681 update);
5682 } else {
5683 ret = -EINVAL;
5684 mutex_unlock(&routing_lock);
5685 }
5686 return ret;
5687}
5688
5689static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5690 "SEC_MI2S_TX", "TERT_MI2S_TX",
5691 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005692 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305693
5694static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5695 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5696};
5697
5698static const struct snd_kcontrol_new voc_ext_ec_mux =
5699 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5700 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5701
5702
5703static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005704 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5705 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305706 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005708 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5709 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305710 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005712 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5713 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305714 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005716 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5717 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305718 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005720 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5721 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305722 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005724 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5725 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305726 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005728 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5729 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305730 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005732 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5733 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305734 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005736 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5737 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305738 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005740 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5741 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305742 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005744 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5745 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305746 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005748 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5749 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305750 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005752 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5753 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305754 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005756 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5757 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305758 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005760 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5761 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305762 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005764 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305766 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005768 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5769 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305770 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005772 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5773 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305774 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005776 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5777 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305778 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5779 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305780 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_PRI_I2S_RX,
5782 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005784 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5785 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305786 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005788 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5789 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305790 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5791 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305792 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5793 MSM_BACKEND_DAI_PRI_I2S_RX,
5794 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5795 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305796};
5797
5798static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005799 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5800 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305801 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005803 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5804 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305805 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005807 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5808 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005811 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5812 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305813 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005815 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5816 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305817 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005819 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5820 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305821 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005823 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5824 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305825 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005827 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305829 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005831 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305833 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005835 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305837 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005839 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305841 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005843 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305845 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005847 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305849 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005851 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305853 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005855 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305857 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005859 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305861 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005863 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305865 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005867 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5868 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305869 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005871 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5872 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305873 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5874 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305875 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_SEC_I2S_RX,
5877 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005879 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305881 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005883 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305885 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305887 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_SEC_I2S_RX,
5889 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305891};
5892
Ralf Herzc8701f72018-06-20 11:37:35 +02005893static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005894 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005895 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305896 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005898 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005899 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305900 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005902 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005903 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305904 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005906 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005907 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305908 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005910 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005911 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305912 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005914 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005915 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305916 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005918 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005919 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305920 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005922 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005923 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305924 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005926 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005927 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305928 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005930 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005931 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305932 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005934 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005935 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305936 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005938 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005939 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305940 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005942 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005943 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305944 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005946 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005947 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305948 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005950 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005951 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305952 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005954 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005955 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005958 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005959 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305960 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005962 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005963 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305964 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005966 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005967 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305968 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5969 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305970 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5971 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5972 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005974 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005975 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305976 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005978 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005979 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5980 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305982 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5984 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02005986};
5987
5988static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
5989 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5990 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5991 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
5993 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5994 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5995 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
5997 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5998 MSM_BACKEND_DAI_SEC_SPDIF_RX,
5999 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6000 msm_routing_put_audio_mixer),
6001 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6002 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6003 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
6005 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6007 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
6009 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6011 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
6013 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6015 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
6017 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6019 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
6021 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6023 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6026 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6027 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6028 msm_routing_put_audio_mixer),
6029 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6030 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6031 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6032 msm_routing_put_audio_mixer),
6033 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6034 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6035 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6036 msm_routing_put_audio_mixer),
6037 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6038 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6039 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6040 msm_routing_put_audio_mixer),
6041 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6042 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6043 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6044 msm_routing_put_audio_mixer),
6045 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6046 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6047 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6048 msm_routing_put_audio_mixer),
6049 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6050 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6051 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6052 msm_routing_put_audio_mixer),
6053 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6054 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6055 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6056 msm_routing_put_audio_mixer),
6057 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6058 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6059 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6060 msm_routing_put_audio_mixer),
6061 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6062 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6063 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6064 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306065 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6067 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006069 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6071 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
6073 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306075 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306077 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6079 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306081};
6082
6083static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006084 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306086 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006088 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306090 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006092 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6093 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306094 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006096 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6097 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306098 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006100 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6101 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306102 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006104 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6105 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306106 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006108 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306110 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006112 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306114 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006116 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306118 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006120 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6121 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306122 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006124 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6125 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306126 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006128 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306130 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006132 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306134 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006136 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306138 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006140 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306142 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006144 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306146 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306148 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6150 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306152};
6153
6154static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006155 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306157 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006159 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6160 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306161 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006163 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6164 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306165 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006167 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6168 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306169 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006171 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6172 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306173 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006175 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306177 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006179 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306181 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006183 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306185 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006187 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306189 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006191 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306193 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006195 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306197 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006199 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306201 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006203 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306205 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006207 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306209 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006211 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306213 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006215 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306217 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006219 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306221 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006223 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306225 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006227 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306229 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306231 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6233 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006235 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306237 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006239 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306241 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306243 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6245 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306247};
6248
6249static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006250 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306252 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006254 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306256 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006258 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306260 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006262 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306264 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006266 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306268 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006270 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306272 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006274 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306276 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006278 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306280 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006282 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306284 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006286 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306288 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006290 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306292 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006294 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306296 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006298 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306300 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006302 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306304 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006306 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6307 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306308 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006310 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6311 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306312 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006314 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6315 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306316 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006318 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6319 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306320 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006322 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6323 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306324 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6325 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306326 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6327 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6328 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006330 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6331 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306332 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006334 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306336 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306338 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6340 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306342};
6343
6344static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006345 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306347 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006349 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6350 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306351 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006353 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306355 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006357 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306359 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006361 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306363 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006365 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306367 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006369 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306371 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006373 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306375 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006377 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306379 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006381 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6382 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306383 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006385 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306387 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006389 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306391 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006393 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6394 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306395 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006397 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306399 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006401 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306403 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006405 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306407 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006409 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306411 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006413 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306415 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006417 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306419 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306421 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_MI2S_RX,
6423 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006425 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306427 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006429 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306431 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306433 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6434 MSM_BACKEND_DAI_MI2S_RX,
6435 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6436 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306437};
6438
6439static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006440 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306442 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006444 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6445 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006448 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6449 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306450 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006452 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6453 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306454 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006456 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6457 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306458 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006460 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6461 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006464 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6465 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306466 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006468 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306470 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006472 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306474 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006476 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6477 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306478 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006480 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6481 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306482 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006484 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6485 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306486 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006488 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306490 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006492 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6493 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306494 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006496 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6497 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306498 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006500 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6501 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306502 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006504 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6505 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306506 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006508 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6509 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306510 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006512 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6513 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306514 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6515 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306516 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6517 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6518 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006520 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6521 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306522 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006524 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6525 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306526 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6527 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306528 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6529 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6530 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6531 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306532};
6533
6534static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006535 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6536 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306537 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006539 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6540 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306541 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006543 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6544 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306545 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006547 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6548 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306549 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006551 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6552 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306553 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006555 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6556 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306557 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006559 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306561 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006563 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6564 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306565 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006567 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6568 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306569 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006571 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6572 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306573 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006575 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6576 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306577 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006579 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6580 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306581 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006583 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6584 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306585 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006587 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6588 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306589 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006591 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6592 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306593 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006595 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6596 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306597 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006599 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6600 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306601 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006603 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6604 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306605 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006607 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6608 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306609 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6610 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306611 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6612 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6613 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006615 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6616 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306617 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006619 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6620 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306621 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6622 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306623 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6624 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6625 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6626 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306627
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306628};
6629
Karthikeyan Manic3700752019-03-11 18:33:53 -07006630static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6631 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6632 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6633 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6634 msm_routing_put_audio_mixer),
6635 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6636 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6637 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6638 msm_routing_put_audio_mixer),
6639 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6640 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6642 msm_routing_put_audio_mixer),
6643 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6644 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6645 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6646 msm_routing_put_audio_mixer),
6647 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6648 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6649 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6650 msm_routing_put_audio_mixer),
6651 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6652 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6653 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6654 msm_routing_put_audio_mixer),
6655 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6657 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
6659 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6661 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
6663 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6665 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
6667 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6669 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
6671 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6673 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
6675 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6677 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
6679 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6681 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
6683 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6685 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
6687 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6689 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
6691 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6693 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
6695 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6697 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
6699 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6701 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
6703 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6705 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
6707 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6709 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
6711 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6713 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
6715 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6717 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
6719
6720};
6721
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306722static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006723 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006727 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006731 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006735 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306737 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006739 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6740 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306741 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006743 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6744 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306745 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006747 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6748 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306749 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006751 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306753 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006755 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306757 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006759 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306761 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006763 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306765 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006767 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306769 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006771 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6772 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306773 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006775 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6776 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306777 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006779 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6780 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306781 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006783 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6784 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306785 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006787 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6788 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306789 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6790 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306791 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6792 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6793 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006795 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6796 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306797 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006799 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6800 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306801 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6802 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306803 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6804 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6805 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6806 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306807};
6808
6809static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
6814};
6815
6816static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006817 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306893 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6895 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006901 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306903 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306905 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6907 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306909};
6910
6911static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006912 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006968 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006972 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306974 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006980 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306982 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006984 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306988 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_PRI_MI2S_RX,
6990 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006992 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306994 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006996 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306998 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307000 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_PRI_MI2S_RX,
7002 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307004
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307005};
7006
7007static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007008 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7009 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007012 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7013 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307014 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007016 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7017 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307018 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007020 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7021 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307022 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007024 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7025 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307026 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007028 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7029 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307030 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007032 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7033 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307034 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007036 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7037 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307038 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007040 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7041 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307042 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007044 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7045 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307046 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007048 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7049 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307050 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007052 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7053 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307054 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007056 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7057 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307058 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007060 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7061 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307062 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007064 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7065 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307066 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007068 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7069 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307070 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7071 msm_routing_put_audio_mixer),
7072};
7073
7074static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007075 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7076 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307077 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007079 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7080 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307081 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007083 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7084 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307085 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007087 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7088 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307089 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007091 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7092 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307093 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007095 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7096 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307097 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007099 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7100 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007103 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7104 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007107 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7108 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307109 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007111 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7112 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307113 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007115 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7116 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307117 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007119 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7120 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307121 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007123 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7124 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307125 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007127 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7128 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307129 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007131 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7132 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307133 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007135 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7136 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307137 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7138 msm_routing_put_audio_mixer),
7139};
7140
7141static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007142 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7143 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307144 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007146 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7147 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307148 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007150 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7151 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307152 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007154 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7155 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307156 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007158 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7159 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307160 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007162 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7163 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307164 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007166 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7167 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307168 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007170 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7171 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307172 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007174 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7175 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307176 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007178 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7179 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307180 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007182 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7183 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307184 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007186 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7187 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307188 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007190 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7191 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307192 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007194 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7195 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307196 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007198 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7199 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307200 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007202 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7203 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307204 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007206 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7207 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307208 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007210 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307212 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007214 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307216 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307218 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7219 MSM_BACKEND_DAI_HDMI_RX,
7220 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007222 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7223 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307224 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007226 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307228 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307230 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_HDMI_RX,
7232 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307234};
7235
7236static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007237 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007241 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7242 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307243 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007245 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7246 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307247 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007249 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7250 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307251 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007253 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7254 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307255 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007257 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7258 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307259 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007261 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7262 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307263 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007265 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7266 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307267 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007269 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7270 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307271 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007273 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7274 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307275 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007277 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7278 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307279 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007281 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7282 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307283 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007285 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7286 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307287 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007289 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7290 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307291 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007293 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7294 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307295 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007297 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7298 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307299 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7300 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307301 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7302 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7303 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7304 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307305};
7306
Karthikeyan Mani57550082018-05-03 18:43:58 -07007307static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7308 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7309 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7310 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7311 msm_routing_put_audio_mixer),
7312 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7313 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7315 msm_routing_put_audio_mixer),
7316 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7317 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7318 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7319 msm_routing_put_audio_mixer),
7320 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7321 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7322 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7323 msm_routing_put_audio_mixer),
7324 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7325 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7326 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7327 msm_routing_put_audio_mixer),
7328 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7329 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7330 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7331 msm_routing_put_audio_mixer),
7332 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7333 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7334 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7335 msm_routing_put_audio_mixer),
7336 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7337 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7338 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7339 msm_routing_put_audio_mixer),
7340 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7341 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7342 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7343 msm_routing_put_audio_mixer),
7344 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7345 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7346 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7347 msm_routing_put_audio_mixer),
7348 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7349 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7350 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7351 msm_routing_put_audio_mixer),
7352 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7353 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7354 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7355 msm_routing_put_audio_mixer),
7356 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7357 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7358 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7359 msm_routing_put_audio_mixer),
7360 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7361 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7362 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7363 msm_routing_put_audio_mixer),
7364 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7365 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7366 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7367 msm_routing_put_audio_mixer),
7368 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7369 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7370 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7371 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307372 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7373 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7374 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7375 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007376};
7377
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307378 /* incall music delivery mixer */
7379static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007380 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7381 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307382 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007384 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7385 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307386 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007388 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7389 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307390 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007392 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7393 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307394 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7395 msm_routing_put_audio_mixer),
7396};
7397
7398static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007399 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7400 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307401 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007403 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7404 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307405 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007407 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7408 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307409 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007411 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7412 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7414 msm_routing_put_audio_mixer),
7415};
7416
7417static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007418 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007422 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007426 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007430 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7431 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307432 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7433 msm_routing_put_audio_mixer),
7434};
7435
7436static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007461 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307463 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007465 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7466 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307467 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007469 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307471 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007477 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007481 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007485 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007489 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307491 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007493 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7494 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307495 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007497 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307499 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307501 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7502 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7503 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7504 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505};
7506
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307507static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7508 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7510 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
7512 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7514 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
7516 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7518 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
7520 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7522 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
7524 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7526 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
7528 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7530 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
7532 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7534 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
7536 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7538 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
7540 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7542 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
7544 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7546 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
7548 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7550 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
7552 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7554 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
7556 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7558 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
7560 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7562 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
7564 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7566 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
7568 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7570 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307572 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7574 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307576};
7577
7578static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7579 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7581 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
7583 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7585 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
7587 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
7591 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7593 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
7595 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
7599 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7601 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
7603 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7605 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
7607 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
7611 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7613 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
7615 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7617 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
7619 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7621 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
7623 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7625 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
7627 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7629 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
7631 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7633 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
7635 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7637 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
7639 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7641 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307643 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7645 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307647};
7648
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307649static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7650 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7652 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
7654 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7656 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
7658 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7660 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
7662 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7664 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
7666 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7668 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
7670 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7671 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7672 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7673 msm_routing_put_audio_mixer),
7674 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7675 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7676 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7677 msm_routing_put_audio_mixer),
7678 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7679 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7680 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7681 msm_routing_put_audio_mixer),
7682 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7683 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7684 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7685 msm_routing_put_audio_mixer),
7686 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7687 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7688 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7689 msm_routing_put_audio_mixer),
7690 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7691 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7692 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7693 msm_routing_put_audio_mixer),
7694 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7695 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7696 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7697 msm_routing_put_audio_mixer),
7698 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7699 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7700 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7701 msm_routing_put_audio_mixer),
7702 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7703 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7704 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7705 msm_routing_put_audio_mixer),
7706 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7707 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7708 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7709 msm_routing_put_audio_mixer),
7710 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7711 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7712 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7713 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307714 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7715 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7716 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7717 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307718};
7719
7720static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7721 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7723 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
7725 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7727 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
7729 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7731 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
7733 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7735 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
7737 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7739 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
7741 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7743 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
7745 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7747 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
7749 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7751 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
7753 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7754 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7755 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7756 msm_routing_put_audio_mixer),
7757 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7758 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7759 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7760 msm_routing_put_audio_mixer),
7761 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7762 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7763 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7764 msm_routing_put_audio_mixer),
7765 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7766 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7767 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7768 msm_routing_put_audio_mixer),
7769 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7770 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7771 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7772 msm_routing_put_audio_mixer),
7773 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7774 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7775 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7776 msm_routing_put_audio_mixer),
7777 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7778 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7779 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7780 msm_routing_put_audio_mixer),
7781 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7782 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7783 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7784 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307785 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7786 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7787 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7788 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307789};
7790
7791static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
7792 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7794 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
7796 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7797 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7798 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7799 msm_routing_put_audio_mixer),
7800 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7801 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7802 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7803 msm_routing_put_audio_mixer),
7804 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7805 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7806 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7807 msm_routing_put_audio_mixer),
7808 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7809 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7810 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7811 msm_routing_put_audio_mixer),
7812 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7813 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7814 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7815 msm_routing_put_audio_mixer),
7816 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7817 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7818 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7819 msm_routing_put_audio_mixer),
7820 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7821 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7822 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7823 msm_routing_put_audio_mixer),
7824 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7825 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7826 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7827 msm_routing_put_audio_mixer),
7828 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7829 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7830 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7831 msm_routing_put_audio_mixer),
7832 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7833 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7834 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7835 msm_routing_put_audio_mixer),
7836 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7837 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7838 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7839 msm_routing_put_audio_mixer),
7840 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7841 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7842 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7843 msm_routing_put_audio_mixer),
7844 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7845 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7846 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7847 msm_routing_put_audio_mixer),
7848 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7849 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7850 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7851 msm_routing_put_audio_mixer),
7852 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7853 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7854 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7855 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307856 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7857 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
7858 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7859 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307860};
7861
7862static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
7863 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7865 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
7867 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7869 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
7871 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7872 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7873 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7874 msm_routing_put_audio_mixer),
7875 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7877 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7878 msm_routing_put_audio_mixer),
7879 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7881 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7882 msm_routing_put_audio_mixer),
7883 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7885 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7886 msm_routing_put_audio_mixer),
7887 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7888 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7889 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7890 msm_routing_put_audio_mixer),
7891 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7892 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7893 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7894 msm_routing_put_audio_mixer),
7895 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7896 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7897 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7898 msm_routing_put_audio_mixer),
7899 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7900 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7901 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7902 msm_routing_put_audio_mixer),
7903 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7904 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7905 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7906 msm_routing_put_audio_mixer),
7907 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7908 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7909 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7910 msm_routing_put_audio_mixer),
7911 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7912 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7913 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7914 msm_routing_put_audio_mixer),
7915 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7916 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7917 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7918 msm_routing_put_audio_mixer),
7919 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7920 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7921 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7922 msm_routing_put_audio_mixer),
7923 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7924 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7925 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7926 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307927 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7928 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
7929 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7930 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307931};
7932
7933static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
7934 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7936 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
7938 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7939 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7940 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7941 msm_routing_put_audio_mixer),
7942 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7943 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7944 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7945 msm_routing_put_audio_mixer),
7946 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7947 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7948 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7949 msm_routing_put_audio_mixer),
7950 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7951 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7952 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7953 msm_routing_put_audio_mixer),
7954 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7955 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7956 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7957 msm_routing_put_audio_mixer),
7958 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7959 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7960 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7961 msm_routing_put_audio_mixer),
7962 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7963 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7964 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7965 msm_routing_put_audio_mixer),
7966 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7967 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7968 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7969 msm_routing_put_audio_mixer),
7970 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7971 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7972 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7973 msm_routing_put_audio_mixer),
7974 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7976 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7977 msm_routing_put_audio_mixer),
7978 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7980 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7981 msm_routing_put_audio_mixer),
7982 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7984 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7985 msm_routing_put_audio_mixer),
7986 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7987 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7988 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7989 msm_routing_put_audio_mixer),
7990 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7991 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7992 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7993 msm_routing_put_audio_mixer),
7994 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7995 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
7996 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7997 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307998 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7999 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8000 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8001 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308002};
8003
8004static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8005 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8007 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
8009 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8010 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8011 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8012 msm_routing_put_audio_mixer),
8013 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8014 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8015 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8016 msm_routing_put_audio_mixer),
8017 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8018 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8019 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8020 msm_routing_put_audio_mixer),
8021 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8023 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8024 msm_routing_put_audio_mixer),
8025 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8026 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8027 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8028 msm_routing_put_audio_mixer),
8029 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8030 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8031 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8032 msm_routing_put_audio_mixer),
8033 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8034 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8035 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8036 msm_routing_put_audio_mixer),
8037 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8038 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8039 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8040 msm_routing_put_audio_mixer),
8041 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8042 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8043 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8044 msm_routing_put_audio_mixer),
8045 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8046 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8047 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8048 msm_routing_put_audio_mixer),
8049 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8050 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8051 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8052 msm_routing_put_audio_mixer),
8053 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8054 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8055 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8056 msm_routing_put_audio_mixer),
8057 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8058 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8059 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8060 msm_routing_put_audio_mixer),
8061 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8062 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8063 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8064 msm_routing_put_audio_mixer),
8065 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8066 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8067 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8068 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308069 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8070 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8071 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8072 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308073};
8074
8075static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8076 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8078 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
8080 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8081 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8082 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8083 msm_routing_put_audio_mixer),
8084 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8085 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8086 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8087 msm_routing_put_audio_mixer),
8088 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8089 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8090 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8091 msm_routing_put_audio_mixer),
8092 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8093 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8094 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8095 msm_routing_put_audio_mixer),
8096 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8097 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8098 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8099 msm_routing_put_audio_mixer),
8100 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8101 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8102 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8103 msm_routing_put_audio_mixer),
8104 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8105 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8106 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8107 msm_routing_put_audio_mixer),
8108 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8109 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8110 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8111 msm_routing_put_audio_mixer),
8112 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8113 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8114 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8115 msm_routing_put_audio_mixer),
8116 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8117 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8118 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8119 msm_routing_put_audio_mixer),
8120 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8121 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8122 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8123 msm_routing_put_audio_mixer),
8124 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8125 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8126 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8127 msm_routing_put_audio_mixer),
8128 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8129 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8130 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8131 msm_routing_put_audio_mixer),
8132 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8133 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8134 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8135 msm_routing_put_audio_mixer),
8136 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8137 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8138 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8139 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308140 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8141 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8142 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8143 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308144};
8145
8146static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8147 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8149 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
8151 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8153 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
8155 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8157 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
8159 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8161 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
8163 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8165 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
8167 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8169 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
8171 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8173 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
8175 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8177 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
8179 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8180 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8181 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8182 msm_routing_put_audio_mixer),
8183 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8184 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8185 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8186 msm_routing_put_audio_mixer),
8187 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8188 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8189 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8190 msm_routing_put_audio_mixer),
8191 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8192 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8193 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8194 msm_routing_put_audio_mixer),
8195 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8196 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8197 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8198 msm_routing_put_audio_mixer),
8199 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8201 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8202 msm_routing_put_audio_mixer),
8203 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8204 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8205 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8206 msm_routing_put_audio_mixer),
8207 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8208 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8209 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8210 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308211 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8212 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8213 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8214 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308215};
8216
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308217static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008218 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308220 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008222 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8223 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308224 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008226 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8227 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308228 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008230 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8231 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308232 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008234 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008238 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308240 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008242 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308244 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008246 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308248 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008250 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8251 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308252 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008254 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8255 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308256 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008258 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8259 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308260 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008262 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8263 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308264 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008266 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8267 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308268 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008270 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8271 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308272 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008274 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8275 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308276 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008278 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8279 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308280 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8281 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308282 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8283 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8284 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8285 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286};
8287
Surendar Karka3ef3d812018-09-28 18:52:35 +05308288static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8289 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8291 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
8293 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8294 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8295 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8296 msm_routing_put_audio_mixer),
8297 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8298 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8299 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8300 msm_routing_put_audio_mixer),
8301 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8302 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8303 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8304 msm_routing_put_audio_mixer),
8305 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8306 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8307 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8308 msm_routing_put_audio_mixer),
8309 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8310 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8311 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8312 msm_routing_put_audio_mixer),
8313 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8314 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8315 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8316 msm_routing_put_audio_mixer),
8317 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8318 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8319 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8320 msm_routing_put_audio_mixer),
8321 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8322 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8323 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8324 msm_routing_put_audio_mixer),
8325 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8326 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8327 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8328 msm_routing_put_audio_mixer),
8329 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8330 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8331 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8332 msm_routing_put_audio_mixer),
8333 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8334 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8335 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8336 msm_routing_put_audio_mixer),
8337 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8338 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8339 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8340 msm_routing_put_audio_mixer),
8341 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8342 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8343 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8344 msm_routing_put_audio_mixer),
8345 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8346 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8347 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8348 msm_routing_put_audio_mixer),
8349 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8350 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8351 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8352 msm_routing_put_audio_mixer),
8353 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8354 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8355 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8356 msm_routing_put_audio_mixer),
8357};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308358static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008359 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308361 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008363 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008367 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308369 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008371 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008375 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008379 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008391 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008395 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008399 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308401 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008403 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8404 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308405 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008407 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8408 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308409 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008411 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8412 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308413 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008415 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8416 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308417 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008419 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308421 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308423 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_USB_RX,
8425 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308427};
8428
8429static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008430 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308432 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008470 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8471 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308472 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008474 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8475 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308476 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008478 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8479 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308480 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008482 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8483 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308484 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008486 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8487 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308488 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008490 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8491 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308492 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008494 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8495 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308496 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008498 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8499 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308500 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008502 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8503 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308504 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8505 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308506 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8507 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8508 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008510 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8511 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308512 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008514 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8515 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308516 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8517 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308518 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8520 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308522};
8523
8524static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008541 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308543 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008545 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8546 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308547 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008549 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8550 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308551 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008553 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8554 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308555 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008557 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8558 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308559 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008561 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8562 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308563 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008565 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8566 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308567 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008569 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8570 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308571 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008573 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8574 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308575 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008577 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8578 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308579 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008581 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8582 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308583 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008585 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308587 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308589 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8591 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308593};
8594
8595static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008600 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008604 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008616 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308618 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008620 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8621 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308622 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008624 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8625 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008628 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8629 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308630 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008632 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8633 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008636 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308638 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008640 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8641 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308642 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008644 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8645 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308646 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008648 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8649 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308650 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008652 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8653 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308654 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008656 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8657 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008660 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8661 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008664 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8665 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308666 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008668 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8669 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308670 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8671 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308672 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8673 MSM_BACKEND_DAI_INT_FM_RX,
8674 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008676 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8677 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308678 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008680 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8681 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308682 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8683 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308684 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8685 MSM_BACKEND_DAI_INT_FM_RX,
8686 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8687 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688};
8689
8690static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008691 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008695 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308697 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008699 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008703 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008707 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308709 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008711 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8712 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308713 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008715 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8716 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308717 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008719 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8720 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308721 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008723 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8724 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308725 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008727 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008731 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008735 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008739 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8740 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308741 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008743 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8744 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308745 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008747 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8748 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308749 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008751 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8752 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308753 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008755 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8756 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308757 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008759 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8760 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308761 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008763 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8764 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308765 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8766 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308767 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8768 MSM_BACKEND_DAI_AFE_PCM_RX,
8769 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008771 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8772 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308773 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008775 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8776 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308777 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8778 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308779 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_AFE_PCM_RX,
8781 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308783};
8784
8785static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008786 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8787 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308788 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008790 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8791 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308792 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008794 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8795 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308796 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008798 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8799 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308800 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008802 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8803 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308804 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008806 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8807 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308808 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008810 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8811 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308812 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008814 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8815 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308816 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008818 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8819 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308820 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008822 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8823 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308824 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008826 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8827 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308828 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008830 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8831 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308832 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008834 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8835 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308836 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008838 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8839 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308840 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008842 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8843 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308844 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008846 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008850 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8851 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308852 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008854 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008858 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008862 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_AUXPCM_RX,
8864 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308866 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8867 MSM_BACKEND_DAI_AUXPCM_RX,
8868 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008870 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8871 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308872 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008874 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308878 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_AUXPCM_RX,
8880 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308882};
8883
8884static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008885 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8886 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308887 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008889 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8890 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308891 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008893 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8894 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308895 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008897 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8898 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308899 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008901 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8902 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008905 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8906 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308907 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008909 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8910 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308911 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008913 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8914 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308915 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008917 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8918 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308919 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008921 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8922 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308923 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008925 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8926 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308927 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008929 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8930 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308931 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008933 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8934 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308935 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008937 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8938 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308939 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008941 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8942 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308943 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008945 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8946 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308947 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008949 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8950 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308951 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008953 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8954 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308955 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008957 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8958 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308959 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8960 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008961 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8962 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
8963 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8964 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308965 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8966 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
8967 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008969 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8970 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308971 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008973 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8974 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308975 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8976 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308977 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8978 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
8979 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8980 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308981};
8982
8983static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008984 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8985 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308986 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008988 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8989 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308990 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008992 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8993 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308994 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008996 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8997 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308998 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009000 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9001 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309002 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009004 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9005 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309006 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009008 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9009 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309010 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009012 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9013 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309014 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009016 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9017 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309018 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009020 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9021 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309022 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009024 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9025 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309026 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009028 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9029 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309030 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009032 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9033 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309034 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009036 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9037 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309038 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009040 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9041 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309042 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009044 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9045 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309046 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9047 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309048 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9049 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9050 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9051 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309052};
9053
9054static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009055 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9056 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309057 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009059 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9060 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309061 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009063 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9064 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309065 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009067 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9068 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309069 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009071 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9072 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309073 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009075 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9076 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309077 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009079 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9080 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309081 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009083 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9084 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309085 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009087 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9088 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309089 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009091 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9092 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309093 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009095 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9096 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309097 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009099 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9100 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309101 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009103 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9104 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309105 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009107 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9108 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309109 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009111 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9112 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309113 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009115 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9116 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309117 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9118 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309119 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9120 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9121 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9122 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309123};
9124
Rohit Kumara5077932017-09-10 22:05:05 +05309125static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009126 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9127 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309128 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009130 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9131 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309132 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009134 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9135 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309136 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009138 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9139 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309140 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009142 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9143 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309144 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009146 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9147 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309148 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009150 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9151 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309152 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009154 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9155 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309156 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009158 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9159 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309160 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009162 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9163 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309164 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009166 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9167 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309168 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009170 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9171 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309172 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009174 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9175 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309176 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009178 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9179 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309180 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009182 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9183 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309184 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009186 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9187 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309188 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9189 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309190 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9191 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9192 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9193 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309194};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009195
9196static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9197 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
9201 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9202 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9203 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9204 msm_routing_put_audio_mixer),
9205 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9206 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9207 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9208 msm_routing_put_audio_mixer),
9209 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9210 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9211 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9212 msm_routing_put_audio_mixer),
9213 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9214 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9215 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9216 msm_routing_put_audio_mixer),
9217 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9218 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9219 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9220 msm_routing_put_audio_mixer),
9221 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9222 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9223 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9224 msm_routing_put_audio_mixer),
9225 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9226 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9227 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9228 msm_routing_put_audio_mixer),
9229 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9230 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9231 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9232 msm_routing_put_audio_mixer),
9233 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9234 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9235 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9236 msm_routing_put_audio_mixer),
9237 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9238 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9239 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9240 msm_routing_put_audio_mixer),
9241 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9242 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9243 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9244 msm_routing_put_audio_mixer),
9245 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9246 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9247 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9248 msm_routing_put_audio_mixer),
9249 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9250 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9251 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9252 msm_routing_put_audio_mixer),
9253 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9254 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9255 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9256 msm_routing_put_audio_mixer),
9257 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9258 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9259 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9260 msm_routing_put_audio_mixer),
9261 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9262 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9263 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9264 msm_routing_put_audio_mixer),
9265};
9266
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309267static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009268 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9269 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309270 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009272 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9273 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309274 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009276 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9277 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309278 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009280 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9281 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309282 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009284 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9285 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309286 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009288 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9289 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309290 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009292 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9293 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309294 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009296 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9297 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309298 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009300 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9301 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309302 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009304 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9305 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309306 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009308 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9309 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309310 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009312 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9313 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309314 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009316 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9317 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309318 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009320 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9321 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309322 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009324 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9325 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309326 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009328 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9329 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309330 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9331 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009332 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9333 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9334 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9335 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009336 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9337 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9338 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9339 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340};
9341
9342static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009343 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9344 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309345 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009347 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9348 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309349 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009351 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9352 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309353 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009355 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9356 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309357 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009359 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9360 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309361 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009363 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9364 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309365 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009367 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9368 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309369 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009371 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9372 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309373 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009375 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9376 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309377 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009379 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9380 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309381 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009383 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9384 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309385 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009387 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9388 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309389 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009391 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9392 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309393 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009395 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9396 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309397 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009399 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9400 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309401 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009403 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9404 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309405 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9406 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009407 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9408 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9409 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9410 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009411 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9412 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9413 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9414 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309415};
9416
9417static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009418 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009422 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009426 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309428 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009430 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309432 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009434 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309436 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009438 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309440 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009442 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9443 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309444 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009446 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309448 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009450 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309452 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009454 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9455 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309456 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009458 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9459 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309460 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009462 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9463 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309464 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009466 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9467 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309468 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009470 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9471 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309472 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009474 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9475 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309476 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009478 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9479 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309480 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9481 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009482 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9483 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9484 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9485 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009486 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9487 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9488 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9489 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309490};
9491
9492static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009493 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309495 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009497 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309499 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009501 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9502 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309503 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009505 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9506 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309507 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009509 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309511 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009513 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309515 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009517 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309519 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009521 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9522 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309523 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009525 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9526 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309527 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009529 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9530 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309531 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009533 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9534 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309535 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009537 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9538 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309539 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009541 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9542 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309543 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009545 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9546 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309547 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009549 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9550 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309551 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009553 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9554 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309555 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9556 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009557 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9558 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9559 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9560 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009561 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9562 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9563 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9564 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565};
9566
9567static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009568 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9569 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309570 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009572 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9573 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309574 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009576 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9577 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309578 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009580 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9581 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309582 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009584 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9585 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309586 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009588 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9589 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309590 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009592 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9593 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309594 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009596 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9597 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309598 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009600 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9601 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309602 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009604 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9605 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309606 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009608 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9609 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309610 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009612 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9613 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309614 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009616 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9617 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309618 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009620 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9621 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309622 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009624 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9625 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309626 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009628 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9629 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309630 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9631 msm_routing_put_audio_mixer),
9632};
9633
9634static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009635 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309637 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009639 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309641 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009643 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309645 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009647 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9648 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309649 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009651 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9652 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309653 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009655 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9656 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309657 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009659 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9660 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309661 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009663 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9664 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309665 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009667 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9668 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309669 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009671 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9672 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309673 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009675 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9676 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309677 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009679 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9680 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309681 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009683 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9684 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309685 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009687 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9688 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309689 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009691 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9692 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309693 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009695 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9696 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309697 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9698 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009699 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9700 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9701 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9702 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009703 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9704 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9705 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9706 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707};
9708
9709static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009710 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9711 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309712 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009714 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9715 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309716 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009718 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9719 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309720 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009722 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9723 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309724 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009726 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9727 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309728 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009730 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9731 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309732 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009734 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9735 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309736 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009738 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9739 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309740 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009742 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9743 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309744 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009746 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9747 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309748 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009750 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9751 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309752 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009754 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9755 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309756 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009758 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9759 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309760 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009762 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9763 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309764 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009766 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9767 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309768 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009770 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9771 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309772 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9773 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009774 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9775 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9776 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9777 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009778 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9779 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9780 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9781 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782};
9783
9784static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009785 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009789 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309791 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009793 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309795 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009797 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9798 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309799 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009801 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9802 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309803 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009805 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9806 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309807 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009809 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9810 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309811 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009813 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9814 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309815 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009817 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9818 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309819 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009821 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9822 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309823 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009825 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9826 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309827 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009829 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9830 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309831 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009833 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9834 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309835 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009837 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9838 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309839 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009841 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9842 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309843 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009845 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9846 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309847 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9848 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009849 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9850 MSM_BACKEND_DAI_SEC_TDM_RX_2,
9851 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9852 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009853 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9854 MSM_BACKEND_DAI_SEC_TDM_RX_2,
9855 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9856 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857};
9858
9859static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009860 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9861 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309862 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009864 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9865 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009868 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309870 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009872 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009876 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009880 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9881 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309882 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009884 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9885 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309886 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009888 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9889 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309890 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009892 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9893 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309894 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009896 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9897 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309898 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009900 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9901 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309902 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009904 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9905 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309906 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009908 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9909 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309910 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009912 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9913 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309914 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009916 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9917 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309918 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009920 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9921 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309922 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9923 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009924 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9925 MSM_BACKEND_DAI_SEC_TDM_RX_3,
9926 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9927 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009928 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_SEC_TDM_RX_3,
9930 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9931 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932};
9933
9934static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009935 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9936 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309937 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009939 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9940 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309941 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009943 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9944 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309945 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009947 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9948 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309949 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009951 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9952 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309953 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009955 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9956 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309957 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009959 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9960 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309961 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009963 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9964 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309965 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009967 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9968 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309969 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009971 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9972 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309973 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009975 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309977 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009979 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309981 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009983 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309985 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009987 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9988 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309989 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009991 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9992 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309993 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009995 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9996 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309997 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9998 msm_routing_put_audio_mixer),
9999};
10000
10001static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010002 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10003 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010004 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010006 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10007 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010008 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010010 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10011 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010012 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010014 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10015 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010016 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010018 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10019 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010020 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010022 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10023 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010024 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010026 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10027 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010028 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010030 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10031 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010032 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010034 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10035 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010036 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010038 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10039 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010040 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010042 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10043 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010044 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010046 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10047 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010048 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010050 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10051 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010052 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010054 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10055 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010056 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010058 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10059 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010060 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010062 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10063 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010064 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10065 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010066 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10067 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10068 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10069 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010070 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10071 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10072 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10073 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074};
10075
10076static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010077 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10078 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010081 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10082 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010083 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010085 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10086 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010087 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010089 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10090 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010091 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010093 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10094 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010095 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010097 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10098 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010099 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010101 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10102 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010103 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010105 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10106 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010107 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010109 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10110 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010111 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010113 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10114 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010115 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010117 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10118 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010119 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010121 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10122 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010123 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010125 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10126 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010127 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010129 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10130 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010131 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010133 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10134 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010135 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010137 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10138 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010139 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10140 msm_routing_put_audio_mixer),
10141};
10142
10143static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010144 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10145 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010146 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010148 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10149 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010150 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010152 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10153 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010154 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010156 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10157 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010158 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010160 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10161 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010162 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010164 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10165 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010166 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010168 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10169 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010170 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010172 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10173 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010174 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010176 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10177 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010178 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010180 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10181 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010182 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010184 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10185 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010186 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010188 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10189 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010190 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010192 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10193 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010194 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010196 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10197 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010198 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010200 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10201 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010202 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010204 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10205 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010206 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10207 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010208 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10209 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10210 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10211 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010212 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10213 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10214 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10215 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010216};
10217
10218static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010219 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010221 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010223 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010225 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010227 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010231 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10232 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010233 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010235 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10236 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010237 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010239 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10240 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010241 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010243 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10244 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010245 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010247 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10248 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010249 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010251 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10252 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010253 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010255 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10256 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010257 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010259 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10260 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010261 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010263 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10264 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010265 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010267 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10268 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010269 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010271 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010273 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010275 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10276 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010277 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010279 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10280 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010281 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10282 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010283 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10284 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10285 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10286 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010287 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10288 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10289 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10290 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010291};
10292
10293static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010294 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010296 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010298 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010300 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010302 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010304 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010306 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10307 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010310 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010312 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010314 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010316 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010318 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010320 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010322 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10323 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010324 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010326 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10327 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010328 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010330 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10331 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010332 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010334 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10335 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010336 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010338 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10339 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010340 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010342 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10343 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010344 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010346 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10347 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010348 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010350 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10351 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010352 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010354 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10355 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010356 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10357 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010358 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10359 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10360 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10361 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010362 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10363 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10364 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10365 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366};
10367
10368static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010369 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010373 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10374 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010375 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010377 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10378 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010381 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010383 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010385 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010387 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010389 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010393 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010395 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010397 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010399 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010401 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10402 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010403 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010405 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10406 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010407 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010409 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10410 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010411 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010413 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10414 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010415 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010417 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010419 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010421 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10422 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010423 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010425 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10426 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010427 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010429 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10430 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010431 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10432 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010433 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10434 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10435 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10436 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010437 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10438 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10439 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10440 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010441};
10442
10443static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010444 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010446 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010448 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010452 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010454 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010456 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10457 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010458 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010460 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10461 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010462 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010464 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10465 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010468 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10469 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010470 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010472 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10473 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010474 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010476 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10477 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010478 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010480 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10481 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010482 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010484 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10485 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010486 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010488 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10489 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010490 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010492 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10493 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010494 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010496 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10497 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010498 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010500 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10501 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010502 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010504 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10505 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010506 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010508 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10509 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010510 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10511 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010512 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10513 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10514 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10515 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010516 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10517 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10518 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10519 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010520};
10521
10522static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010523 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10524 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010525 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010527 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10528 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010529 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010531 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10532 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010533 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010535 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10536 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010537 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010539 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10540 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010541 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010543 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10544 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010545 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010547 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10548 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010549 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010551 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10552 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010553 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010555 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10556 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010557 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010559 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10560 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010561 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010563 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10564 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010565 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010567 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10568 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010569 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010571 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10572 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010573 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010575 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10576 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010577 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010579 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10580 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010581 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010583 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10584 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010585 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10586 msm_routing_put_audio_mixer),
10587};
10588
10589static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010590 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010592 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010594 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010596 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010598 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10599 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010600 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010602 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10603 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010604 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010606 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10607 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010608 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010610 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10611 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010612 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010614 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10615 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010616 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010618 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10619 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010620 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010622 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10623 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010624 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010626 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10627 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010628 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010630 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10631 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010632 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010634 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10635 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010636 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010638 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10639 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010640 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010642 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10643 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010644 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010646 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10647 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010648 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010650 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10651 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010652 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010654 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10655 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010656 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10657 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010658 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10659 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10660 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10661 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010662 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10663 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10664 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10665 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666};
10667
10668static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010669 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010671 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010673 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010675 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010677 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010679 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010681 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010683 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010685 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010689 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10690 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010691 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010693 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10694 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010695 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010697 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10698 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010699 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010701 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10702 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010703 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010705 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10706 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010707 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010709 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10710 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010711 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010713 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10714 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010715 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010717 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10718 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010719 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010721 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10722 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010723 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010725 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10726 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010727 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010729 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10730 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010731 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010733 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10734 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010735 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10736 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010737 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10738 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10739 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10740 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010741 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10742 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10743 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10744 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010745};
10746
10747static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010748 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010750 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010752 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010754 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010756 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010758 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010760 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010762 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010764 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010766 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010768 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010770 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010772 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010774 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010776 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010778 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010780 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010782 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010784 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010786 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010788 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10789 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010790 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010792 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10793 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010794 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010796 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10797 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010798 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010800 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10801 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010802 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010804 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10805 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010806 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010808 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010810 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010812 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010814 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10815 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010816 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
10818 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10819 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010820 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
10822 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10823 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010824};
10825
Rohit Kumara5077932017-09-10 22:05:05 +053010826static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010827 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010831 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010835 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010839 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010843 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010847 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010851 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10852 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010853 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010855 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10856 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010857 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010859 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10860 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010863 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10864 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010867 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10868 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010869 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010871 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10872 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010873 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010875 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10876 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010877 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010879 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10880 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010881 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010883 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10884 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010885 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010887 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10888 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010891 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10892 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010893 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010895 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
10897 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10898 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010899 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10900 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
10901 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10902 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053010903};
10904
10905static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010906 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010908 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010910 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010912 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010914 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010916 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010918 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010920 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010922 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010924 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010926 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10927 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010928 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010930 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10931 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010932 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010934 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10935 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010936 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010938 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10939 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010940 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010942 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10943 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010944 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010946 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010948 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010950 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10951 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010952 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010954 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10955 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010956 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010958 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10959 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010960 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010962 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10963 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010964 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010966 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010968 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
10970};
10971
10972static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010973 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010975 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010977 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010979 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010981 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010983 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010985 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10986 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010987 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010989 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10990 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010993 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10994 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010995 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010997 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10998 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010999 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011001 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11002 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011005 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11006 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011007 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011009 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11010 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011011 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011013 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11014 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011015 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011017 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11018 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011019 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011021 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11022 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011023 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011025 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11026 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011027 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011029 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11030 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011031 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011033 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11034 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011035 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011037 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11038 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011039 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11040 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011041 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11043 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11044 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011045 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11046 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11047 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11048 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011049};
11050
11051static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011052 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11053 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011054 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011056 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011058 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011060 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011062 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011064 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11065 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011066 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011068 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11069 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011070 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011072 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11073 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011074 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011076 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11077 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011078 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011080 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11081 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011082 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011084 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11085 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011086 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011088 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11089 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011090 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011092 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11093 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011094 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011096 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11097 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011098 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011100 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11101 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011102 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011104 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11105 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011106 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011108 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11109 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011110 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011112 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11113 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011114 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011116 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11117 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011118 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11119 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011120 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11121 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11122 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11123 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011124 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11125 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11126 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11127 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011128};
11129
11130static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011131 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011133 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011137 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011139 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011141 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011143 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011145 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011147 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011149 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011151 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011153 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011155 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011157 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011159 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011161 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011163 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011165 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011167 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011169 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011171 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11172 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011173 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011175 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11176 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011177 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011179 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11180 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011181 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011183 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11184 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011185 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011187 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11188 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011189 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011191 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11192 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011193 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011195 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11196 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011197 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11198 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011199 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11201 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11202 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011203 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11204 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11205 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11206 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011207};
11208
Karthikeyan Manic3700752019-03-11 18:33:53 -070011209static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11210 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11212 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
11214 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11216 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
11218 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11220 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
11222 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11224 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
11226 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11228 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
11230 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11232 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11233 msm_routing_put_audio_mixer),
11234 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11236 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
11238 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11240 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
11242 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11244 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11245 msm_routing_put_audio_mixer),
11246 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11248 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11249 msm_routing_put_audio_mixer),
11250 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11252 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11253 msm_routing_put_audio_mixer),
11254 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11256 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11257 msm_routing_put_audio_mixer),
11258 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11260 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
11262 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11264 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
11266 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11268 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
11270 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11272 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11273 msm_routing_put_audio_mixer),
11274 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11276 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
11278 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11280 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
11282};
11283
11284static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11285 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11287 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
11289 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11291 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
11293 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11295 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
11297 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11299 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11300 msm_routing_put_audio_mixer),
11301 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11303 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11304 msm_routing_put_audio_mixer),
11305 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11307 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11308 msm_routing_put_audio_mixer),
11309 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11310 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11311 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
11313 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11315 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
11317 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11319 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11320 msm_routing_put_audio_mixer),
11321 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11322 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11323 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11324 msm_routing_put_audio_mixer),
11325 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11326 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11327 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11328 msm_routing_put_audio_mixer),
11329 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11330 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11331 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11332 msm_routing_put_audio_mixer),
11333 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11334 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11335 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11336 msm_routing_put_audio_mixer),
11337 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11338 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11339 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11340 msm_routing_put_audio_mixer),
11341 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11342 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11343 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11344 msm_routing_put_audio_mixer),
11345 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11347 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11348 msm_routing_put_audio_mixer),
11349};
11350
11351static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11352 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11353 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11354 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11355 msm_routing_put_audio_mixer),
11356 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11358 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11359 msm_routing_put_audio_mixer),
11360 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11361 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11362 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
11364 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11366 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11367 msm_routing_put_audio_mixer),
11368 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11369 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11370 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11371 msm_routing_put_audio_mixer),
11372 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11373 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11374 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11375 msm_routing_put_audio_mixer),
11376 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11378 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
11380 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11382 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11386 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
11388 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11390 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
11392 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11393 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11394 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11395 msm_routing_put_audio_mixer),
11396 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11397 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11398 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11399 msm_routing_put_audio_mixer),
11400 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11401 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11402 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11403 msm_routing_put_audio_mixer),
11404 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11406 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
11408 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11410 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11411 msm_routing_put_audio_mixer),
11412 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11413 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11414 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11415 msm_routing_put_audio_mixer),
11416 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11417 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11418 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
11420 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11422 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11423 msm_routing_put_audio_mixer),
11424};
11425
11426static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11427 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11429 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
11431 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11433 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
11435 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11437 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
11439 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11441 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
11443 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11445 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
11447 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11449 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
11451 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11453 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
11455 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11457 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
11459 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11461 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11462 msm_routing_put_audio_mixer),
11463 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11464 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11465 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11466 msm_routing_put_audio_mixer),
11467 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11468 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11469 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11470 msm_routing_put_audio_mixer),
11471 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11472 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11473 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
11475 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11477 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11478 msm_routing_put_audio_mixer),
11479 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11480 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11481 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11482 msm_routing_put_audio_mixer),
11483 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11484 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11485 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11486 msm_routing_put_audio_mixer),
11487 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11488 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11489 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11490 msm_routing_put_audio_mixer),
11491 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11492 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11493 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11494 msm_routing_put_audio_mixer),
11495 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11496 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11497 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11498 msm_routing_put_audio_mixer),
11499};
11500
11501static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
11502 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11504 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
11506 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11508 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
11510 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11512 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
11514 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11516 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
11518 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11520 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
11522 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11524 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
11526 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11528 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11529 msm_routing_put_audio_mixer),
11530 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11531 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11532 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11533 msm_routing_put_audio_mixer),
11534 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11535 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11536 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
11538 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11540 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
11542 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11544 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
11546 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11547 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11548 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11549 msm_routing_put_audio_mixer),
11550 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11551 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11552 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11553 msm_routing_put_audio_mixer),
11554 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11556 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
11558 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11559 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11560 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11561 msm_routing_put_audio_mixer),
11562 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11564 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11565 msm_routing_put_audio_mixer),
11566 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11568 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11569 msm_routing_put_audio_mixer),
11570 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11572 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11573 msm_routing_put_audio_mixer),
11574};
11575
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011576static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011577 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011579 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011581 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011583 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011585 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011587 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011589 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11590 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011591 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011593 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011595 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011597 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11598 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011599 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011601 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11602 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011603 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011605 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011607 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011609 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11610 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011611 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11612 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011613 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11614 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11615 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011617 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11618 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011619 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011621 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11622 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011623 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011625 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11626 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011627 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011629 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11630 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011631 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011633 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11634 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011635 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11636 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011637 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
11638 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11639 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011641 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11642 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011643 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011645 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11646 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011647 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011649 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11650 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011651 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011653 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11654 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011655 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011657 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11658 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011659 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011661 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
11662 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011663 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011665 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11666 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011667 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011669 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11670 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011671 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11672 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011673 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11674 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11675 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011677 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11678 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011679 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011681 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11682 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011683 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011685 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011687 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011689 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11690 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011693 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11694 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011695 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011697 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11698 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011699 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011701 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011703 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011705 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11706 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011707 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011709 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11710 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011711 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011713 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11714 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011715 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011717 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11718 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011719 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011721 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011723 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011725 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011727 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011729 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011731 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011733 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011735 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011737 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011739 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011741 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011743 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011745 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011747 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011749 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11750 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011751 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011753 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011755 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11756 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011757 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11758 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11759 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11760 msm_routing_put_audio_mixer),
11761 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11762 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11763 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11764 msm_routing_put_audio_mixer),
11765 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11768 msm_routing_put_audio_mixer),
11769 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11771 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011773 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011777 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011781 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011783 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011785 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11786 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11788 msm_routing_put_audio_mixer),
11789 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11791 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11792 msm_routing_put_audio_mixer),
11793 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11795 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11796 msm_routing_put_audio_mixer),
11797 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11798 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11799 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11800 msm_routing_put_audio_mixer),
11801 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011805 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11806 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11808 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011809 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11811 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
11813 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11815 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
11817 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11820 msm_routing_put_audio_mixer),
11821 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11823 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11824 msm_routing_put_audio_mixer),
11825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
11829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11831 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011833 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
11837 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11839 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011841 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011845 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11847 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011849};
11850
11851static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011852 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11853 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011854 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011856 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11857 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011858 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011860 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11861 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011862 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011864 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11865 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011866 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011868 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11869 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011870 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011872 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11873 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011874 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011876 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11877 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011878 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011880 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011884 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011886 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011888 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011890 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011892 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011894 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011896 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011900 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11902 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011904 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011906 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011908 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011910 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011912 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011914 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011916 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011918 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011920 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011922 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011924 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011926 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011928 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011930 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011932 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011934 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011936 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011938 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011940 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011942 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011944 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011946 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011948 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011950 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011952 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011954 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011956 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011958 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011960 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011962 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011964 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011966 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011968 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011970 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011972 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011974 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011976 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011978 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011984 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11987 msm_routing_put_audio_mixer),
11988 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11989 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11990 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11991 msm_routing_put_audio_mixer),
11992 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11993 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11994 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11995 msm_routing_put_audio_mixer),
11996 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11997 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11998 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012000 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012004 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012006 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12007 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012008 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12009 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12010 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12011 msm_routing_put_audio_mixer),
12012 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12013 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12014 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12015 msm_routing_put_audio_mixer),
12016 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12017 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12018 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12019 msm_routing_put_audio_mixer),
12020 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12021 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12022 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12023 msm_routing_put_audio_mixer),
12024 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12026 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12027 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012028 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12029 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12030 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12031 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012032 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12035 msm_routing_put_audio_mixer),
12036 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12037 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12038 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12039 msm_routing_put_audio_mixer),
12040 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12042 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12043 msm_routing_put_audio_mixer),
12044 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12045 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12046 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12047 msm_routing_put_audio_mixer),
12048 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12049 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12050 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12051 msm_routing_put_audio_mixer),
12052 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12053 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12055 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012056 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12057 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12058 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12059 msm_routing_put_audio_mixer),
12060 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12061 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12062 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12063 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012064 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12066 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12067 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012068 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12069 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12070 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12071 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012072};
12073
12074static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012075 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12076 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012077 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12078 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012079 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12080 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12081 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012083 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12084 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012085 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012087 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12088 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012089 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012091 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12092 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012093 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012095 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12096 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012097 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012099 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12100 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012101 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012103 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12104 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012107 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12108 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012109 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012111 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12112 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012113 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012115 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12116 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012117 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12118 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012119 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12120 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12121 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012123 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12124 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012125 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012127 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12128 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012129 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012131 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12132 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012133 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012135 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12136 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012137 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012139 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12140 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012141 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012143 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12144 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012145 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012147 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12148 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012149 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012151 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12152 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012153 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012155 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012157 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012159 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12160 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012161 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012163 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12164 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012165 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012167 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012169 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012171 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12172 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012173 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012175 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012177 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012179 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12180 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012181 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012183 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12184 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012187 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12188 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012189 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012191 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12192 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012193 MSM_FRONTEND_DAI_MULTIMEDIA3, 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_TDM_TX_2", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012197 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012199 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12200 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012201 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012203 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12204 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012205 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012207 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12208 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012209 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012211 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12212 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012213 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012215 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12218 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012219 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12220 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12221 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12222 msm_routing_put_audio_mixer),
12223 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12224 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12225 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12226 msm_routing_put_audio_mixer),
12227 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12228 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12230 msm_routing_put_audio_mixer),
12231 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12232 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12233 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12234 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012235 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12237 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12238 msm_routing_put_audio_mixer),
12239 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12240 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12241 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12242 msm_routing_put_audio_mixer),
12243 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12244 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12245 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12246 msm_routing_put_audio_mixer),
12247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12250 msm_routing_put_audio_mixer),
12251 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12252 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12253 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12254 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012255 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12256 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12257 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12258 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12261 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12262 msm_routing_put_audio_mixer),
12263 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12264 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12265 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12266 msm_routing_put_audio_mixer),
12267 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12268 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12270 msm_routing_put_audio_mixer),
12271 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12273 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12274 msm_routing_put_audio_mixer),
12275 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12277 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12278 msm_routing_put_audio_mixer),
12279 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12281 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12282 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012283 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12286 msm_routing_put_audio_mixer),
12287 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12289 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12290 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012291 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12292 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12293 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12294 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012295};
12296
12297static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012298 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012300 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12301 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012302 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12303 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12304 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012306 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12307 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012310 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12311 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012312 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012314 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12315 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012316 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012318 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12319 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012320 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012322 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12323 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012324 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012326 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12327 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012328 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012330 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12331 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012332 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012334 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12335 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012336 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012338 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012340 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012342 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12343 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012344 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012346 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12347 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012348 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012350 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12351 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012352 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012354 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12355 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012356 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012358 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12359 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012360 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012362 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12363 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012364 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012366 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12367 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012368 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012370 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012372 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012374 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012376 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012378 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012380 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012382 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012384 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012386 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012388 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012390 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12391 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012392 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012394 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12395 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012396 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012398 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12399 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012400 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012402 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12403 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012404 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012408 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12409 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012410 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12411 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12413 msm_routing_put_audio_mixer),
12414 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12415 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12417 msm_routing_put_audio_mixer),
12418 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12419 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12421 msm_routing_put_audio_mixer),
12422 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12424 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012426 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012428 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012430 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12431 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012432 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012434 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12435 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012436 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012438 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12439 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012440 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012442 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12443 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012444 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012446 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12447 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12449 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012450 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12451 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12452 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12453 msm_routing_put_audio_mixer),
12454 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12455 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12456 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12457 msm_routing_put_audio_mixer),
12458 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12459 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12460 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12461 msm_routing_put_audio_mixer),
12462 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12464 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12465 msm_routing_put_audio_mixer),
12466 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12468 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12469 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012470 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12472 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12473 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012474 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12476 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12477 msm_routing_put_audio_mixer),
12478 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12480 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12481 msm_routing_put_audio_mixer),
12482 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12483 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12484 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12485 msm_routing_put_audio_mixer),
12486 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12487 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12488 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12489 msm_routing_put_audio_mixer),
12490 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12491 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12492 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12493 msm_routing_put_audio_mixer),
12494 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12496 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12497 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012498 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12499 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12500 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12501 msm_routing_put_audio_mixer),
12502 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12503 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12504 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12505 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012506 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12507 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12508 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12509 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012510};
12511
12512static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012513 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12514 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12516 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012517 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12518 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012521 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12522 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012523 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012525 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12526 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012527 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012529 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12530 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012531 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012533 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12534 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012535 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012537 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12538 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012539 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012541 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12542 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012543 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012545 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12546 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012549 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12550 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012551 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012553 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12556 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012557 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12559 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012561 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12562 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012563 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012565 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12566 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012567 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012569 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12570 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012571 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012573 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12574 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012575 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012577 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12578 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12582 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012583 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012585 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12586 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012587 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012589 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12590 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012591 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012593 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12594 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012595 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012597 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12598 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012599 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012601 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12602 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012603 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012605 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12606 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012607 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012609 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12610 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012611 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012613 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12614 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012615 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012617 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12618 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012619 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012621 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12622 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012623 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012625 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12626 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012627 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012629 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12630 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012631 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012633 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012635 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012637 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12638 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012639 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012641 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12642 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12646 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12650 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012651 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12654 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012655 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12656 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012657 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12658 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12659 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12660 msm_routing_put_audio_mixer),
12661 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12662 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12663 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12664 msm_routing_put_audio_mixer),
12665 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12666 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12668 msm_routing_put_audio_mixer),
12669 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12670 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12671 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012673 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012675 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012679 MSM_FRONTEND_DAI_MULTIMEDIA5, 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_7_TX", SND_SOC_NOPM,
12682 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012685 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012689 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12690 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012691 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12692 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012693 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12694 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12695 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12696 msm_routing_put_audio_mixer),
12697 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12698 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12700 msm_routing_put_audio_mixer),
12701 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12703 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12704 msm_routing_put_audio_mixer),
12705 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12706 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12708 msm_routing_put_audio_mixer),
12709 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12710 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12711 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12712 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012713 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12714 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12715 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12716 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012717 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12718 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12719 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12720 msm_routing_put_audio_mixer),
12721 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12722 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12723 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12724 msm_routing_put_audio_mixer),
12725 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12726 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12727 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12728 msm_routing_put_audio_mixer),
12729 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12730 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12731 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12732 msm_routing_put_audio_mixer),
12733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12735 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12736 msm_routing_put_audio_mixer),
12737 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12738 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12739 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12740 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012741 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12742 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12743 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12744 msm_routing_put_audio_mixer),
12745 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12747 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12748 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012749 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12750 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12751 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12752 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012753 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12754 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12755 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12756 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012757};
12758
12759static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012760 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12761 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012762 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012764 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12765 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012766 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12767 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012768 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12769 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12770 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012772 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12773 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012774 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012776 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12777 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012778 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012780 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12781 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012784 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12785 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012786 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012788 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12789 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012790 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012792 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12793 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012794 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012796 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12797 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012798 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12799 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012800 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12801 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12802 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012804 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012806 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012808 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12809 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012812 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12813 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012814 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012816 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12817 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012818 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012820 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12821 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012822 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012824 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12825 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012826 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012828 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12829 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012830 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012832 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12833 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012834 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012836 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12837 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012838 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012840 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12841 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012842 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012844 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12845 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012848 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12849 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012850 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012852 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12853 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012854 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012856 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12857 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012858 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012860 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12861 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012864 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12865 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012866 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012868 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12869 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012870 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012872 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12873 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012874 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012876 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012880 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012882 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012884 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012888 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012890 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012892 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12893 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012896 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12897 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12899 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012900 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12901 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12902 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12903 msm_routing_put_audio_mixer),
12904 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12905 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12906 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12907 msm_routing_put_audio_mixer),
12908 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12909 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12910 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12911 msm_routing_put_audio_mixer),
12912 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12913 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12914 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012916 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012918 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12919 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012920 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12921 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12922 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12923 msm_routing_put_audio_mixer),
12924 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12926 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12927 msm_routing_put_audio_mixer),
12928 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12930 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12931 msm_routing_put_audio_mixer),
12932 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12934 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12935 msm_routing_put_audio_mixer),
12936 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12938 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12939 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012940 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12942 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12943 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12946 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12947 msm_routing_put_audio_mixer),
12948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12950 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12951 msm_routing_put_audio_mixer),
12952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12954 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12955 msm_routing_put_audio_mixer),
12956 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12958 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12959 msm_routing_put_audio_mixer),
12960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12962 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12963 msm_routing_put_audio_mixer),
12964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12966 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12967 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012968 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12970 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12971 msm_routing_put_audio_mixer),
12972 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12974 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12975 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012976 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12978 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12979 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012980};
12981
12982static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012983 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12984 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012985 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12986 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012987 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12988 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12989 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012991 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12992 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012993 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012995 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12996 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012999 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013003 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013005 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013007 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13008 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013009 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013011 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013015 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013017 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013053 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013055 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013067 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013071 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013073 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013075 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013079 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013083 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013085 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013087 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013089 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013091 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013093 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013095 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013099 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013101 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013103 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013105 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013107 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013109 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013111 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13112 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013113 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013115 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13116 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013117 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13118 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013119 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13120 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13121 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13122 msm_routing_put_audio_mixer),
13123 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13125 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13126 msm_routing_put_audio_mixer),
13127 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13129 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13130 msm_routing_put_audio_mixer),
13131 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13132 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13133 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13136 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013137 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013139 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13140 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013141 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13142 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013143 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13144 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13145 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13146 msm_routing_put_audio_mixer),
13147 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13148 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13149 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13150 msm_routing_put_audio_mixer),
13151 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13152 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13153 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13154 msm_routing_put_audio_mixer),
13155 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13156 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13157 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13158 msm_routing_put_audio_mixer),
13159 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13160 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13161 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13162 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013163 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13164 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13165 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13166 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013167 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13168 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13169 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13170 msm_routing_put_audio_mixer),
13171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13173 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13174 msm_routing_put_audio_mixer),
13175 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13176 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13177 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13178 msm_routing_put_audio_mixer),
13179 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13180 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13181 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13182 msm_routing_put_audio_mixer),
13183 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13184 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13185 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13186 msm_routing_put_audio_mixer),
13187 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13188 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13189 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13190 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013191 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13192 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13193 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13194 msm_routing_put_audio_mixer),
13195 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13196 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13197 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13198 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013199 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13200 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13201 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13202 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013203 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13204 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13205 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13206 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013207};
13208
Asish Bhattacharya34504582017-08-08 12:55:01 +053013209static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013210 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13211 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013212 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13213 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013214 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13215 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013218 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13219 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013220 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013222 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13223 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013226 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13227 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013230 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013232 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013234 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013236 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013238 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013240 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013242 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013244 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013246 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013248 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013250 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013252 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013254 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13255 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013256 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013258 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13259 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013260 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013262 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13263 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013264 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013266 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13267 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013268 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013270 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13271 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013272 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013274 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13275 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013276 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013278 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13279 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013280 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013282 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13283 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013284 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013286 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13287 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013288 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013290 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13291 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013292 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013294 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13295 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013296 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013298 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13299 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013300 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013302 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13303 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013304 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013306 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013308 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013310 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13311 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013312 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013314 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13315 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013316 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013318 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013320 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013322 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13323 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013324 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013326 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13327 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013328 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013330 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13331 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013332 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013334 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13335 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013336 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013338 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13339 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013340 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013342 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13343 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013344 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013346 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13347 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013348 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013350 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13351 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013352 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13353 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013354 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13355 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13356 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13357 msm_routing_put_audio_mixer),
13358 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13360 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13361 msm_routing_put_audio_mixer),
13362 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13363 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13364 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13365 msm_routing_put_audio_mixer),
13366 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13367 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13368 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13369 msm_routing_put_audio_mixer),
13370 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13371 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13372 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13373 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013374 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13375 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13376 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13377 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013378 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13380 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13381 msm_routing_get_audio_mixer,
13382 msm_routing_put_audio_mixer),
13383 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13385 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13386 msm_routing_get_audio_mixer,
13387 msm_routing_put_audio_mixer),
13388 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13390 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13391 msm_routing_get_audio_mixer,
13392 msm_routing_put_audio_mixer),
13393 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13395 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13396 msm_routing_get_audio_mixer,
13397 msm_routing_put_audio_mixer),
13398 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13400 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13401 msm_routing_get_audio_mixer,
13402 msm_routing_put_audio_mixer),
13403 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13404 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13405 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13406 msm_routing_get_audio_mixer,
13407 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013408 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13410 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13411 msm_routing_put_audio_mixer),
13412 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13414 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13415 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013416 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13418 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13419 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013420 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13422 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13423 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013424};
13425
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013426static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013427 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013429 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13430 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013431 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13433 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013435 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013439 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13440 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013441 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013443 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013445 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013447 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013449 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013451 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013453 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013455 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13456 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013457 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013459 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13460 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013461 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013463 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13464 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013465 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013467 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13468 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013469 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013471 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13472 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013473 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013475 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13476 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013477 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013479 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13480 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013481 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013483 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13484 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013485 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013487 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13488 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013489 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013491 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013493 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013495 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13496 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013497 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013499 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013501 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013503 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13504 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013505 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013507 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13508 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013509 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13510 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013511 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13513 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13514 msm_routing_put_audio_mixer),
13515 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13516 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13517 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13518 msm_routing_put_audio_mixer),
13519 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13521 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13522 msm_routing_put_audio_mixer),
13523 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13525 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13526 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013527 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13529 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13530 msm_routing_put_audio_mixer),
13531 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13532 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13533 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13534 msm_routing_put_audio_mixer),
13535 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13536 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13537 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13538 msm_routing_put_audio_mixer),
13539 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13542 msm_routing_put_audio_mixer),
13543 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13545 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13546 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013547 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13549 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13550 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013551 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13553 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13554 msm_routing_put_audio_mixer),
13555 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13557 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13558 msm_routing_put_audio_mixer),
13559 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13561 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13562 msm_routing_put_audio_mixer),
13563 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13565 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13566 msm_routing_put_audio_mixer),
13567 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13569 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13570 msm_routing_put_audio_mixer),
13571 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13573 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13574 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013575 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13577 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13578 msm_routing_put_audio_mixer),
13579 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13580 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13581 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13582 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013583 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13584 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13585 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13586 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587};
13588
Laxminath Kasam38070be2017-08-17 18:21:59 +053013589static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013590 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13591 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013592 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13593 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013594 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13596 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013598 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13599 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013600 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013602 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13603 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013604 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013606 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13607 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013608 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013610 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13611 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013612 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013614 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13615 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013616 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013618 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13619 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013620 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013622 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13623 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013624 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013626 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13627 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070013628 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013630 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13631 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013632 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013634 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13635 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013636 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013638 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13639 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013640 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013642 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013644 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013646 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13647 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013648 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013650 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013652 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013654 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013656 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013658 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13659 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013660 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013664 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13667 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013668 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013670 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013672 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013674 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013676 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013678 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
13679 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013680 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013684 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013686 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013688 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013690 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013692 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013694 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013696 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13697 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013698 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13700 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13701 msm_routing_put_audio_mixer),
13702 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13704 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13705 msm_routing_put_audio_mixer),
13706 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13708 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13709 msm_routing_put_audio_mixer),
13710 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13712 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13713 msm_routing_put_audio_mixer),
13714 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13716 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13717 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013718 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13720 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13721 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013722 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13724 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13725 msm_routing_get_audio_mixer,
13726 msm_routing_put_audio_mixer),
13727 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13729 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13730 msm_routing_get_audio_mixer,
13731 msm_routing_put_audio_mixer),
13732 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13733 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13734 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13735 msm_routing_get_audio_mixer,
13736 msm_routing_put_audio_mixer),
13737 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13738 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13739 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13740 msm_routing_get_audio_mixer,
13741 msm_routing_put_audio_mixer),
13742 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13744 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13745 msm_routing_get_audio_mixer,
13746 msm_routing_put_audio_mixer),
13747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13749 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13750 msm_routing_get_audio_mixer,
13751 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013752 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13753 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13754 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13755 msm_routing_put_audio_mixer),
13756 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13758 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13759 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013760 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13761 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13762 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13763 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013764 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13765 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13766 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13767 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053013768};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013769static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013770 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013772 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13773 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013774 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13776 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013778 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013780 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013782 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013784 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013786 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013788 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013790 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013792 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013794 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013796 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013798 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013800 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013802 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013804 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13805 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013806 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13808 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13809 msm_routing_put_audio_mixer),
13810 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
13812 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13813 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013814 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13816 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13817 msm_routing_put_audio_mixer),
13818 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13820 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13821 msm_routing_put_audio_mixer),
13822 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13824 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13825 msm_routing_put_audio_mixer),
13826 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13828 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13829 msm_routing_put_audio_mixer),
13830 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13832 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13833 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013834 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13836 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13837 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013838 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13840 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13841 msm_routing_get_audio_mixer,
13842 msm_routing_put_audio_mixer),
13843 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13845 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13846 msm_routing_get_audio_mixer,
13847 msm_routing_put_audio_mixer),
13848 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13849 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13850 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13851 msm_routing_get_audio_mixer,
13852 msm_routing_put_audio_mixer),
13853 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13854 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13855 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13856 msm_routing_get_audio_mixer,
13857 msm_routing_put_audio_mixer),
13858 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13860 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13861 msm_routing_get_audio_mixer,
13862 msm_routing_put_audio_mixer),
13863 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13864 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13865 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
13866 msm_routing_get_audio_mixer,
13867 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013868 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13869 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13870 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13871 msm_routing_put_audio_mixer),
13872 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13873 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13874 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13875 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013876 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13877 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13878 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13879 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013880};
13881
13882static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013883 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013885 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13886 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013887 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13888 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13889 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013891 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013895 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013897 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13898 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013899 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
13901 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13902 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080013903 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
13905 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013907 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013909 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013911 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013915 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13916 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013917 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013923 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013927 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013929 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13930 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013931 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13933 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13934 msm_routing_put_audio_mixer),
13935 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13937 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13938 msm_routing_put_audio_mixer),
13939 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13941 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13942 msm_routing_put_audio_mixer),
13943 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13945 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13946 msm_routing_put_audio_mixer),
13947 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13949 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13950 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013951 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13953 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13954 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13957 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13958 msm_routing_get_audio_mixer,
13959 msm_routing_put_audio_mixer),
13960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13962 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13963 msm_routing_get_audio_mixer,
13964 msm_routing_put_audio_mixer),
13965 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13966 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13967 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13968 msm_routing_get_audio_mixer,
13969 msm_routing_put_audio_mixer),
13970 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13972 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13973 msm_routing_get_audio_mixer,
13974 msm_routing_put_audio_mixer),
13975 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13977 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13978 msm_routing_get_audio_mixer,
13979 msm_routing_put_audio_mixer),
13980 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13982 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
13983 msm_routing_get_audio_mixer,
13984 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013985 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13986 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13987 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13988 msm_routing_put_audio_mixer),
13989 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13990 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13991 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13992 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013993 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13994 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13995 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
13996 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013997};
13998
13999static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014000 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014002 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14003 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014004 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14006 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014008 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014010 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014014 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014018 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014024 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014026 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014028 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014030 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14035 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014036 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14038 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14039 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014040 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14042 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14043 msm_routing_put_audio_mixer),
14044 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14046 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14047 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014048 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14050 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14051 msm_routing_put_audio_mixer),
14052 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14054 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14055 msm_routing_put_audio_mixer),
14056 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14057 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14058 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14059 msm_routing_put_audio_mixer),
14060 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14062 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14063 msm_routing_put_audio_mixer),
14064 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14066 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14067 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014068 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14070 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14071 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014072 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14074 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14075 msm_routing_get_audio_mixer,
14076 msm_routing_put_audio_mixer),
14077 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14078 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14079 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14080 msm_routing_get_audio_mixer,
14081 msm_routing_put_audio_mixer),
14082 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14083 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14084 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14085 msm_routing_get_audio_mixer,
14086 msm_routing_put_audio_mixer),
14087 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14089 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14090 msm_routing_get_audio_mixer,
14091 msm_routing_put_audio_mixer),
14092 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14094 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14095 msm_routing_get_audio_mixer,
14096 msm_routing_put_audio_mixer),
14097 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14098 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14099 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14100 msm_routing_get_audio_mixer,
14101 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014102 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14104 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14105 msm_routing_put_audio_mixer),
14106 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14107 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14108 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14109 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014110 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14112 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14113 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014114};
14115
14116static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014117 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014119 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014121 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14122 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014123 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014125 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014127 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014129 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14130 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014131 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014133 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14134 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014135 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14136 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014137 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14138 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14139 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014141 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14142 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014143 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014145 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14146 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014147 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014149 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14150 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014151 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014157 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014159 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014161 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014163 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014169 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14170 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014171 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014175 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014177 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014179 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014181 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014183 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014185 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14186 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014187 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014189 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14190 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014191 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014193 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14194 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014195 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014197 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14198 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014199 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014201 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14202 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014203 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014205 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14206 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014207 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014209 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14210 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014211 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014213 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14214 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014215 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014217 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14218 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014219 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14220 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014221 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14222 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14223 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14224 msm_routing_put_audio_mixer),
14225 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14226 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14227 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14228 msm_routing_put_audio_mixer),
14229 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14230 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14231 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14232 msm_routing_put_audio_mixer),
14233 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14234 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14235 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14236 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014237 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14238 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14239 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14240 msm_routing_put_audio_mixer),
14241 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14242 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14243 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14244 msm_routing_put_audio_mixer),
14245 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14246 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14247 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14248 msm_routing_put_audio_mixer),
14249 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14250 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14251 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14252 msm_routing_put_audio_mixer),
14253 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14254 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14255 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14256 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014257 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14258 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14259 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14260 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014261 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14262 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14263 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14264 msm_routing_put_audio_mixer),
14265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14267 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14268 msm_routing_put_audio_mixer),
14269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14271 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14272 msm_routing_put_audio_mixer),
14273 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14274 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14275 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14276 msm_routing_put_audio_mixer),
14277 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14278 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14279 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14280 msm_routing_put_audio_mixer),
14281 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14283 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14284 msm_routing_put_audio_mixer),
14285 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14286 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14287 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14288 msm_routing_put_audio_mixer),
14289 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14291 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14292 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014293 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14294 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14295 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14296 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014297};
14298
14299static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14300 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14301 MSM_BACKEND_DAI_AUXPCM_TX,
14302 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14303 msm_routing_put_audio_mixer),
14304 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14305 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14306 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14307 msm_routing_put_audio_mixer),
14308 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14309 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14310 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14311 msm_routing_put_audio_mixer),
14312 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14313 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14314 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14315 msm_routing_put_audio_mixer),
14316 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14318 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14319 msm_routing_put_audio_mixer),
14320 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14321 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14322 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14323 msm_routing_put_audio_mixer),
14324 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14326 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14327 msm_routing_put_audio_mixer),
14328 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14329 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14330 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14331 msm_routing_put_audio_mixer),
14332 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14333 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14334 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14335 msm_routing_put_audio_mixer),
14336 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14338 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14339 msm_routing_put_audio_mixer),
14340 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14341 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14342 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14343 msm_routing_put_audio_mixer),
14344 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14346 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14347 msm_routing_put_audio_mixer),
14348 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14350 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14351 msm_routing_put_audio_mixer),
14352 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14354 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14355 msm_routing_put_audio_mixer),
14356 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14358 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14359 msm_routing_put_audio_mixer),
14360 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14361 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14362 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14363 msm_routing_put_audio_mixer),
14364 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14365 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14366 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14367 msm_routing_put_audio_mixer),
14368 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14369 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14370 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14371 msm_routing_put_audio_mixer),
14372 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14373 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14374 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14375 msm_routing_put_audio_mixer),
14376 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14377 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14378 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14379 msm_routing_put_audio_mixer),
14380 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14381 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14382 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14383 msm_routing_put_audio_mixer),
14384 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14386 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14387 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014388 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14389 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14390 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14391 msm_routing_put_audio_mixer),
14392 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14394 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14395 msm_routing_put_audio_mixer),
14396 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14397 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14398 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14399 msm_routing_put_audio_mixer),
14400 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14401 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14402 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14403 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014404 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014405 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14406 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014407 msm_routing_put_audio_mixer),
14408 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014409 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14410 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014411 msm_routing_put_audio_mixer),
14412 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014413 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14414 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014415 msm_routing_put_audio_mixer),
14416 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014417 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14418 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014419 msm_routing_put_audio_mixer),
14420 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014421 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14422 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014423 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014424 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14425 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14426 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14427 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014428 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014429 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14430 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14431 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014432 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014433 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14434 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14435 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014436 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014437 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14438 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14439 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014440 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014441 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14442 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14443 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014444 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014445 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14446 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14447 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014448 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014449 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14450 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14451 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014452 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014454 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014455 msm_routing_put_audio_mixer),
14456 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14457 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014458 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014459 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014460 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14462 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14463 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014464};
14465
Derek Chenb097d922019-07-31 17:28:02 -070014466static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
14467 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14469 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14470 msm_routing_put_audio_mixer),
14471 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14472 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14473 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14474 msm_routing_put_audio_mixer),
14475 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14477 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14478 msm_routing_put_audio_mixer),
14479 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14481 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14482 msm_routing_put_audio_mixer),
14483 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14485 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14486 msm_routing_put_audio_mixer),
14487 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14489 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14490 msm_routing_put_audio_mixer),
14491 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14493 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14494 msm_routing_put_audio_mixer),
14495 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14497 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14498 msm_routing_put_audio_mixer),
14499 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14501 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14502 msm_routing_put_audio_mixer),
14503 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14505 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14506 msm_routing_put_audio_mixer),
14507 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14509 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14510 msm_routing_put_audio_mixer),
14511 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14513 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14514 msm_routing_put_audio_mixer),
14515 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14517 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14518 msm_routing_put_audio_mixer),
14519 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14520 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14521 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14522 msm_routing_put_audio_mixer),
14523 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14524 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14525 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14526 msm_routing_put_audio_mixer),
14527 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14528 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14529 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14530 msm_routing_put_audio_mixer),
14531 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14532 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14533 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14534 msm_routing_put_audio_mixer),
14535 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14537 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14538 msm_routing_put_audio_mixer),
14539 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14540 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14541 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14542 msm_routing_put_audio_mixer),
14543 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14544 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14545 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14546 msm_routing_put_audio_mixer),
14547};
14548
Surendar Karkac1cde372018-08-14 18:56:24 +053014549static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
14550 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14551 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14552 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14553 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014554 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14555 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14556 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14557 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014558 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14559 MSM_BACKEND_DAI_SLIMBUS_6_TX,
14560 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14561 msm_routing_put_audio_mixer),
14562 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14563 MSM_BACKEND_DAI_SLIMBUS_7_TX,
14564 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14565 msm_routing_put_audio_mixer),
14566 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14567 MSM_BACKEND_DAI_PRI_MI2S_TX,
14568 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14569 msm_routing_put_audio_mixer),
14570 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14571 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14572 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14573 msm_routing_put_audio_mixer),
14574 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14575 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14576 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14577 msm_routing_put_audio_mixer),
14578 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14580 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14581 msm_routing_put_audio_mixer),
14582 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14583 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
14584 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14585 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014586 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14587 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14588 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14589 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014590 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14592 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14593 msm_routing_put_audio_mixer),
14594 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14596 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14597 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014598 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14600 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14601 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014602 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14603 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14604 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14605 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014606};
14607
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014608static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014609 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14610 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014611 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14612 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014613 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14614 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14615 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014617 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14618 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014619 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014621 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14622 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014623 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014625 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14626 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014627 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014629 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14630 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014631 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014635 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014637 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14638 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014639 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014641 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14642 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014643 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14644 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014645 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14646 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14647 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14648 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014649 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14650 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14651 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14652 msm_routing_put_audio_mixer),
14653 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053014655 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080014656 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014657 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14658 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14659 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14660 msm_routing_put_audio_mixer),
14661 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14662 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14663 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14664 msm_routing_put_audio_mixer),
14665 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14666 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14667 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14668 msm_routing_put_audio_mixer),
14669 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14670 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14671 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14672 msm_routing_put_audio_mixer),
14673 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14675 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14676 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014677 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14678 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14679 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14680 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014681 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14683 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14684 msm_routing_get_audio_mixer,
14685 msm_routing_put_audio_mixer),
14686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14688 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14689 msm_routing_get_audio_mixer,
14690 msm_routing_put_audio_mixer),
14691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14693 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14694 msm_routing_get_audio_mixer,
14695 msm_routing_put_audio_mixer),
14696 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14698 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14699 msm_routing_get_audio_mixer,
14700 msm_routing_put_audio_mixer),
14701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14703 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14704 msm_routing_get_audio_mixer,
14705 msm_routing_put_audio_mixer),
14706 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14708 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14709 msm_routing_get_audio_mixer,
14710 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014711 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14713 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14714 msm_routing_put_audio_mixer),
14715 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14716 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14717 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14718 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014719 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14720 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14721 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14722 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014723};
14724
14725static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014728 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14729 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014730 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14731 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14732 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014734 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14735 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014736 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014738 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14739 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014740 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014742 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014744 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014746 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014748 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014750 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14751 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014752 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014754 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14755 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014756 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014758 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14759 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014760 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14761 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014762 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14763 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14764 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14765 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014766 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14768 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14769 msm_routing_put_audio_mixer),
14770 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14771 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14772 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14773 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014774 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14775 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14776 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14777 msm_routing_put_audio_mixer),
14778 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14779 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14780 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14781 msm_routing_put_audio_mixer),
14782 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14783 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14784 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14785 msm_routing_put_audio_mixer),
14786 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14788 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14789 msm_routing_put_audio_mixer),
14790 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14791 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14792 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14793 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014794 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14796 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14797 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014798 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14799 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14800 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14801 msm_routing_get_audio_mixer,
14802 msm_routing_put_audio_mixer),
14803 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14804 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14805 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14806 msm_routing_get_audio_mixer,
14807 msm_routing_put_audio_mixer),
14808 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14809 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14810 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14811 msm_routing_get_audio_mixer,
14812 msm_routing_put_audio_mixer),
14813 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14815 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14816 msm_routing_get_audio_mixer,
14817 msm_routing_put_audio_mixer),
14818 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14819 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14820 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14821 msm_routing_get_audio_mixer,
14822 msm_routing_put_audio_mixer),
14823 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14824 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14825 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
14826 msm_routing_get_audio_mixer,
14827 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014828 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14829 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14830 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14831 msm_routing_put_audio_mixer),
14832 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14833 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14834 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14835 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014836 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14837 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14838 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14839 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014840};
14841
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053014842static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
14843 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14844 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14845 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14846 msm_routing_put_audio_mixer),
14847 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14848 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14849 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14850 msm_routing_put_audio_mixer),
14851 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14852 MSM_BACKEND_DAI_PRI_MI2S_TX,
14853 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14854 msm_routing_put_audio_mixer),
14855 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14856 MSM_BACKEND_DAI_INT3_MI2S_TX,
14857 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14858 msm_routing_put_audio_mixer),
14859 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_INT_FM_TX,
14861 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14862 msm_routing_put_audio_mixer),
14863 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14864 MSM_BACKEND_DAI_INT_BT_SCO_TX,
14865 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14866 msm_routing_put_audio_mixer),
14867 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14868 MSM_BACKEND_DAI_AFE_PCM_TX,
14869 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14870 msm_routing_put_audio_mixer),
14871 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14872 MSM_BACKEND_DAI_INCALL_RECORD_RX,
14873 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14874 msm_routing_put_audio_mixer),
14875 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14876 MSM_BACKEND_DAI_INCALL_RECORD_TX,
14877 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14878 msm_routing_put_audio_mixer),
14879 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14881 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14882 msm_routing_put_audio_mixer),
14883 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14884 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14885 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14886 msm_routing_put_audio_mixer),
14887 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14889 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14890 msm_routing_put_audio_mixer),
14891 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14892 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14893 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14894 msm_routing_put_audio_mixer),
14895 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14896 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14897 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14898 msm_routing_put_audio_mixer),
14899 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14900 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14901 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14902 msm_routing_put_audio_mixer),
14903 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14904 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14905 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14906 msm_routing_put_audio_mixer),
14907 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14909 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14910 msm_routing_put_audio_mixer),
14911 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14912 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14913 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14914 msm_routing_get_audio_mixer,
14915 msm_routing_put_audio_mixer),
14916 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14917 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14918 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14919 msm_routing_get_audio_mixer,
14920 msm_routing_put_audio_mixer),
14921 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14922 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14923 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14924 msm_routing_get_audio_mixer,
14925 msm_routing_put_audio_mixer),
14926 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14927 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14928 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14929 msm_routing_get_audio_mixer,
14930 msm_routing_put_audio_mixer),
14931 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14932 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14933 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14934 msm_routing_get_audio_mixer,
14935 msm_routing_put_audio_mixer),
14936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14938 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
14939 msm_routing_get_audio_mixer,
14940 msm_routing_put_audio_mixer),
14941 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14942 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14943 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14944 msm_routing_put_audio_mixer),
14945 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14946 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14947 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14948 msm_routing_put_audio_mixer),
14949 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14950 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14951 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
14952 msm_routing_put_audio_mixer),
14953};
14954
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014955static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014956 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14957 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014958 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14959 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014960 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014962 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
14963 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014964 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
14965 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014966 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
14967 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014968 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014970 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14971 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014974 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14975 msm_routing_put_voice_mixer),
14976};
14977
14978static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014979 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14980 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014981 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14982 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014983 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
14984 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014985 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
14986 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014987 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
14988 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014989 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14990 msm_routing_put_voice_mixer),
14991};
14992
14993static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014994 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
14995 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014996 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
14997 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014998 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
14999 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15000 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15001 msm_routing_put_voice_mixer),
15002 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15003 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15004 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15005 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015006 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15007 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015008 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15009 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015010 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015012 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15013 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015014 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15015 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015016 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15017 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015018 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15019 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015020 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15021 msm_routing_put_voice_mixer),
15022};
15023
15024static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015025 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15026 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15028 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015029 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15030 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015031 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15032 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015033 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15034 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015035 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15036 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015037 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15038 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015039 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15040 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015041 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15042 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015043 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15044 msm_routing_put_voice_mixer),
15045};
15046
15047static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015048 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15049MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015050 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15051 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015052 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15053MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015054 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15055 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015056 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15057MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015058 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15059 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015060 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15061MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15063 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015064 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15065MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015066 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15067 msm_routing_put_voice_mixer),
15068};
15069
15070static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015071 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015073 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15074 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015077 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15078 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015079 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15080 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015081 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15082 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015083 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015085 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15086 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015087 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015089 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15090 msm_routing_put_voice_mixer),
15091};
15092
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015093static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015094 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15095MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015096 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15097 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015098 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15099MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015100 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15101 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015102 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15103MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015104 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15105 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015106 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15107MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015108 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15109 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015110 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15111MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015112 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15113 msm_routing_put_voice_mixer),
15114};
15115
Karthikeyan Mani57550082018-05-03 18:43:58 -070015116static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15117 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15118 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
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_DISPLAY_PORT_RX_1,
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_DISPLAY_PORT_RX_1,
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_DISPLAY_PORT_RX_1,
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_DISPLAY_PORT_RX_1,
15135 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15136 msm_routing_put_voice_mixer),
15137};
15138
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015139static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015140 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15141 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015142 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15143 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015144 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015146 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15147 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015148 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015150 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15151 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015152 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15153 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015154 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15155 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015156 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15157 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015158 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 mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015163 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15164 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015165 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15166 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015167 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15168 MSM_BACKEND_DAI_MI2S_RX,
15169 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15170 msm_routing_put_voice_mixer),
15171 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_MI2S_RX,
15173 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15174 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015175 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15176 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015177 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15178 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015181 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15182 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015183 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015185 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15186 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015187 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15188 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015189 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15190 msm_routing_put_voice_mixer),
15191};
15192
15193static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015194 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015195 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015196 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15197 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015198 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_PRI_MI2S_RX,
15200 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15201 msm_routing_put_voice_mixer),
15202 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15203 MSM_BACKEND_DAI_PRI_MI2S_RX,
15204 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15205 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015206 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015207 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015208 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15209 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015210 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015211 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015212 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15213 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015214 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015215 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015216 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15217 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015218 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015219 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015220 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15221 msm_routing_put_voice_mixer),
15222};
15223
15224static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015225 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15226MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015227 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15230MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015231 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15232 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015233 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15234MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015235 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15236 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015237 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15238MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015239 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15240 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015241 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15242MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015243 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15244 msm_routing_put_voice_mixer),
15245};
15246
15247static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015248 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15249 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015250 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15251 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15253 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015254 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15255 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015256 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015258 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15259 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015260 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15261 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015262 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15263 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015264 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015266 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15267 msm_routing_put_voice_mixer),
15268};
15269
15270static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015271 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015273 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15274 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015275 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15276 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15277 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15278 msm_routing_put_voice_mixer),
15279 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15280 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15281 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15282 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015283 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15284 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015285 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15286 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015287 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15288 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015289 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15290 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015291 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15292 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015293 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15294 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015295 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15296 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015297 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15298 msm_routing_put_voice_mixer),
15299};
15300
15301static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015302 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15303 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015304 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15305 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015306 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15307 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15308 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15309 msm_routing_put_voice_mixer),
15310 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15311 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15312 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15313 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015314 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15315 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015316 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15317 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015318 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15319 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015320 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15321 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015322 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15323 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015324 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15325 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015326 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15327 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015328 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15329 msm_routing_put_voice_mixer),
15330};
15331
15332static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015333 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15334 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015335 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15336 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015337 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15338 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15339 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15340 msm_routing_put_voice_stub_mixer),
15341 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15342 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15343 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15344 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015345 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15346 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015347 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15348 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015349 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15350 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015351 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15352 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015353 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15354 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015355 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15356 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015357 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15358 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015359 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15360 msm_routing_put_voice_mixer),
15361};
15362
Karthikeyan Manic3700752019-03-11 18:33:53 -070015363static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
15364 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15366 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15367 msm_routing_put_voice_mixer),
15368 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15369 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15370 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15371 msm_routing_put_voice_mixer),
15372 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15373 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15374 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15375 msm_routing_put_voice_mixer),
15376 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15377 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15378 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15379 msm_routing_put_voice_mixer),
15380 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15381 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15382 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15383 msm_routing_put_voice_mixer),
15384};
15385
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015386static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015387 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15388 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015389 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15390 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015391 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15392 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015393 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15394 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015395 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15396 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015397 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15398 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015399 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15400 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015401 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15402 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015403 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15404 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015405 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15406 msm_routing_put_voice_mixer),
15407};
15408
15409static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015410 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15411 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015412 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15413 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015414 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015416 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15417 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015418 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15419 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015420 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15421 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015422 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15423 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015424 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15425 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015426 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15427 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015428 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15429 msm_routing_put_voice_mixer),
15430};
15431
15432static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015433 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15434MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015435 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15436 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015437 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15438MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015439 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15440 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015441 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15442MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015443 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15444 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015445 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15446MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015447 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15448 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015449 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15450MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015451 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15452 msm_routing_put_voice_mixer),
15453};
15454
15455static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015456 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15457MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015458 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15459 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015460 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15461MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015462 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15463 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015464 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15465MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015466 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15467 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015468 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15469MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015470 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15471 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015472 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15473MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015474 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15475 msm_routing_put_voice_mixer),
15476};
15477
15478static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015479 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15480MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015481 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15482 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015483 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15484MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015485 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15486 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015487 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15488MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015489 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15490 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015491 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15492MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015493 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15494 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015495 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15496MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015497 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15498 msm_routing_put_voice_mixer),
15499};
15500
Rohit Kumara5077932017-09-10 22:05:05 +053015501static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015502 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15503MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015504 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15505 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015506 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15507MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015508 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15509 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015510 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15511MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015512 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15513 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015514 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15515MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015516 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15517 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015518 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15519MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015520 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15521 msm_routing_put_voice_mixer),
15522};
15523
Karthikeyan Manic3700752019-03-11 18:33:53 -070015524static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
15525 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15526 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15527 msm_routing_put_voice_mixer),
15528 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15529 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15530 msm_routing_put_voice_mixer),
15531 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15532 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15533 msm_routing_put_voice_mixer),
15534 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15536 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15537 msm_routing_put_voice_mixer),
15538 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15540 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15541 msm_routing_put_voice_mixer),
15542};
15543
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015544static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015545 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15546 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015547 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15548 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015549 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15550 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015551 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15552 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015555 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15556 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015557 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15558 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015559 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15560 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015561 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15562 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015563 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15564 msm_routing_put_voice_mixer),
15565};
15566
15567static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15569MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015570 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15571 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015572 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15573MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015574 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15575 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015576 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15577MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015578 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15579 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015580 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15581MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015582 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15583 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015584 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15585MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015586 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15587 msm_routing_put_voice_mixer),
15588};
15589
15590static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015591 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015593 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15594 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015595 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15596 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015597 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15598 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015599 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15600 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015601 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15602 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015605 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15606 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015607 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015609 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15610 msm_routing_put_voice_mixer),
15611};
15612
15613static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015614 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15615 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015616 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15617 msm_routing_put_voice_mixer),
15618};
15619
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015620static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
15621 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15623 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15624 msm_routing_put_voice_mixer),
15625 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15626 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15627 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15628 msm_routing_put_voice_mixer),
15629 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15630 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15631 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15632 msm_routing_put_voice_mixer),
15633 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15634 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15635 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15636 msm_routing_put_voice_mixer),
15637 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15638 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15639 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15640 msm_routing_put_voice_mixer),
15641};
15642
15643static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
15644 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15645 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15646 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15647 msm_routing_put_voice_mixer),
15648 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15649 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15650 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15651 msm_routing_put_voice_mixer),
15652 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15653 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15654 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15655 msm_routing_put_voice_mixer),
15656 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15658 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15659 msm_routing_put_voice_mixer),
15660 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15661 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15662 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15663 msm_routing_put_voice_mixer),
15664};
15665
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015666static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
15667 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15668 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15669 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15670 msm_routing_put_voice_mixer),
15671 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15673 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15674 msm_routing_put_voice_mixer),
15675 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15676 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15677 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15678 msm_routing_put_voice_mixer),
15679 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15680 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15681 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15682 msm_routing_put_voice_mixer),
15683 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15684 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15685 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15686 msm_routing_put_voice_mixer),
15687};
15688
15689static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
15690 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15691 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15692 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15693 msm_routing_put_voice_mixer),
15694 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15695 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15696 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15697 msm_routing_put_voice_mixer),
15698 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15699 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15700 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15701 msm_routing_put_voice_mixer),
15702 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15703 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15704 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15705 msm_routing_put_voice_mixer),
15706 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15708 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15709 msm_routing_put_voice_mixer),
15710};
15711
15712static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
15713 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15714 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15715 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15716 msm_routing_put_voice_mixer),
15717 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15718 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15719 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15720 msm_routing_put_voice_mixer),
15721 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15722 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15723 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15724 msm_routing_put_voice_mixer),
15725 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15726 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15727 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15728 msm_routing_put_voice_mixer),
15729 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15730 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15731 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15732 msm_routing_put_voice_mixer),
15733};
15734
15735static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
15736 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15737 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15738 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15739 msm_routing_put_voice_mixer),
15740 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15741 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15742 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15743 msm_routing_put_voice_mixer),
15744 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15746 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15747 msm_routing_put_voice_mixer),
15748 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15749 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15750 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15751 msm_routing_put_voice_mixer),
15752 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15753 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15754 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15755 msm_routing_put_voice_mixer),
15756};
15757
15758static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
15759 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15761 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15762 msm_routing_put_voice_mixer),
15763 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15764 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15765 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15766 msm_routing_put_voice_mixer),
15767 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15768 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15769 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15770 msm_routing_put_voice_mixer),
15771 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15772 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15773 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15774 msm_routing_put_voice_mixer),
15775 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15777 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15778 msm_routing_put_voice_mixer),
15779};
15780
15781static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
15782 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15783 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15784 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15785 msm_routing_put_voice_mixer),
15786 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15787 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15788 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15789 msm_routing_put_voice_mixer),
15790 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15791 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15792 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15793 msm_routing_put_voice_mixer),
15794 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15796 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15797 msm_routing_put_voice_mixer),
15798 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15799 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15800 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15801 msm_routing_put_voice_mixer),
15802};
15803
15804static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
15805 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15806 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15807 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15808 msm_routing_put_voice_mixer),
15809 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15810 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15811 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15812 msm_routing_put_voice_mixer),
15813 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15814 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15815 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15816 msm_routing_put_voice_mixer),
15817 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15818 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15819 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15820 msm_routing_put_voice_mixer),
15821 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15822 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
15823 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15824 msm_routing_put_voice_mixer),
15825};
15826
15827static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
15828 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15829 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15830 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15831 msm_routing_put_voice_mixer),
15832 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15834 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15835 msm_routing_put_voice_mixer),
15836 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15837 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15838 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15839 msm_routing_put_voice_mixer),
15840 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15842 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15843 msm_routing_put_voice_mixer),
15844 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15845 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
15846 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15847 msm_routing_put_voice_mixer),
15848};
15849
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053015850static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
15851 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15852 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15853 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15854 msm_routing_put_voice_mixer),
15855 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15857 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15858 msm_routing_put_voice_stub_mixer),
15859 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15860 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15861 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15862 msm_routing_put_voice_stub_mixer),
15863 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15865 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15866 msm_routing_put_voice_mixer),
15867 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15869 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15870 msm_routing_put_voice_mixer),
15871 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15872 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15873 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15874 msm_routing_put_voice_mixer),
15875 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15877 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15878 msm_routing_put_voice_mixer),
15879 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15880 MSM_BACKEND_DAI_PRI_TDM_RX_0,
15881 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15882 msm_routing_put_voice_mixer),
15883};
15884
15885static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
15886 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15887 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15888 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15889 msm_routing_put_voice_mixer),
15890 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15892 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15893 msm_routing_put_voice_stub_mixer),
15894 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15895 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15896 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15897 msm_routing_put_voice_stub_mixer),
15898 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15900 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15901 msm_routing_put_voice_mixer),
15902 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15904 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15905 msm_routing_put_voice_mixer),
15906 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15907 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15908 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15909 msm_routing_put_voice_mixer),
15910 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15911 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15912 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15913 msm_routing_put_voice_mixer),
15914 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15915 MSM_BACKEND_DAI_PRI_TDM_RX_1,
15916 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15917 msm_routing_put_voice_mixer),
15918};
15919
15920static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
15921 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15922 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15923 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15924 msm_routing_put_voice_mixer),
15925 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15926 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15927 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15928 msm_routing_put_voice_stub_mixer),
15929 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15930 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15931 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15932 msm_routing_put_voice_stub_mixer),
15933 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15934 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15935 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15936 msm_routing_put_voice_mixer),
15937 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15938 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15939 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15940 msm_routing_put_voice_mixer),
15941 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15942 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15943 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15944 msm_routing_put_voice_mixer),
15945 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15947 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15948 msm_routing_put_voice_mixer),
15949 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15950 MSM_BACKEND_DAI_PRI_TDM_RX_2,
15951 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15952 msm_routing_put_voice_mixer),
15953};
15954
15955static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
15956 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15957 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15958 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15959 msm_routing_put_voice_mixer),
15960 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15962 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15963 msm_routing_put_voice_stub_mixer),
15964 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15965 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15966 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15967 msm_routing_put_voice_stub_mixer),
15968 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
15969 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15970 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
15971 msm_routing_put_voice_mixer),
15972 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15973 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15974 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15975 msm_routing_put_voice_mixer),
15976 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15978 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15979 msm_routing_put_voice_mixer),
15980 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15982 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15983 msm_routing_put_voice_mixer),
15984 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15985 MSM_BACKEND_DAI_PRI_TDM_RX_3,
15986 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15987 msm_routing_put_voice_mixer),
15988};
15989
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015990static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015991 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015993 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15994 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080015997 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15998 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015999};
16000
16001static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016002 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16003 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016004 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16005 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016006 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16007 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016008 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16009 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016010};
16011
16012static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016013 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16014 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016015 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16016 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016017 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16018 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016019 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16020 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016021};
16022
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016023static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016024 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016026 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16027 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016028 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016030 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16031 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016032 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016033 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16034 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016035 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016036 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16037 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016039 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16040 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016041 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016042 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16043 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016044 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016045 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16046 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016047 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016048 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16049 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016050 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016051 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16052 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016053 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016054 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16055 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016056 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16057 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16058 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016059 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016060 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16061 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016062 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16063 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16064 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016065 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016066 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16067 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016068 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016069 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16070 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016071 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016072 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16073 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016074 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016075 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16076 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016077 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16078 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016079 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16080 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016081 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016082 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016083 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016084 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16085 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16086 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16087 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16088 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16089 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016090 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16091 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16092 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016093 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16095 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16096 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16097 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16098 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16099 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16101 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16102 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16103 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16104 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16105 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16106 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16107 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16108 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16110 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016111 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16112 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16113 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16114 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16116 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016117 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016118 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16119 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120};
16121
16122static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016123 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16124 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016125 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16126 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016127 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16128 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016129 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16130 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016131 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016132 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16133 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016134 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016135 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16136 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016137 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016138 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16139 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016140 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016141 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16142 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016143 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016144 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16145 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016147 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16148 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016150 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16151 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016152 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016153 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16154 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016155 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16156 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16157 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016158 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016159 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16160 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016161 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16163 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016164 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016165 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16166 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016167 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016168 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16169 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016170 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016171 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16172 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016173 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016174 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16175 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016176 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016177 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16178 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016179 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16180 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16181 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16182 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16183 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16184 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016185 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16186 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16187 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016188 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16189 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16190 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16191 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16193 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16194 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16195 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16196 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16197 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16198 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16199 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16200 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16202 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16203 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16204 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16205 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016206 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16208 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16209 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16210 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16211 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016212 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016214 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016215};
16216
16217static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016218 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16219 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016220 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16221 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016222 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016224 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16225 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016226 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16229 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016230 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16231 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016232 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16233 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016234 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016236 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16237 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016238 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16239 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016240 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16241 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016242 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016244 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16245 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016246 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016248 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16249 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016250 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016252 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16253 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016256 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16257 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016258 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16259 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16260 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16261 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016262 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16263 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016264 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16265 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016266 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16267 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16268 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16269 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016270 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16271 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016272 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16273 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016274 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016276 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16277 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016278 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
16279 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016280 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16281 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016282 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
16283 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016284 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16285 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016286 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16287 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016288 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16289 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016290 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16291 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16292 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16293 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16294 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16295 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016296 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16297 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16298 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016299 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16300 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16301 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16302 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16304 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16305 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16306 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16307 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16308 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16309 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16310 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16311 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16312 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16313 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16314 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16316 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016317 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16318 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16319 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016320};
16321
16322static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016323 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16324 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016325 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16326 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016327 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16328 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016329 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16330 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016331 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16332 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016333 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16334 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016335 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16336 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016337 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16338 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016339 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16340 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016341 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16342 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016343 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16344 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016345 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16346 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016347 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16348 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016349 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16350 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016351 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16352 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016353 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16354 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016355 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16356 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016357 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16358 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016359 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16360 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016361 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16362 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016363 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16364 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016365 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16366 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016367 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016369 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16370 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016371 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16372 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016373 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16374 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016375 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016377 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16378 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016379 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16380 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16381 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16382 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016383 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016385 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16386 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016389 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16390 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016391 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16392 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016393 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16394 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016395 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16396 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016397 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16398 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016399 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16400 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016401 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16402 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016403 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16404 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16405 1, 0, msm_routing_get_voice_stub_mixer,
16406 msm_routing_put_voice_stub_mixer),
16407 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16409 1, 0, msm_routing_get_voice_stub_mixer,
16410 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016411 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16412 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16413 1, 0, msm_routing_get_voice_stub_mixer,
16414 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016415 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16416 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16417 1, 0, msm_routing_get_voice_stub_mixer,
16418 msm_routing_put_voice_stub_mixer),
16419 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16420 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16421 1, 0, msm_routing_get_voice_stub_mixer,
16422 msm_routing_put_voice_stub_mixer),
16423 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16425 1, 0, msm_routing_get_voice_stub_mixer,
16426 msm_routing_put_voice_stub_mixer),
16427 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
16429 1, 0, msm_routing_get_voice_stub_mixer,
16430 msm_routing_put_voice_stub_mixer),
16431 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16432 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
16433 1, 0, msm_routing_get_voice_stub_mixer,
16434 msm_routing_put_voice_stub_mixer),
16435 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16436 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
16437 1, 0, msm_routing_get_voice_stub_mixer,
16438 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016439};
16440
16441static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016442 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016444 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16445 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016446 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16447 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016448 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16449 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016450 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16451 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016452 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16453 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016454 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16455 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016456 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16457 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016458 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16459 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016460 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16461 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016462 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16463 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016464 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16465 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016466 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16467 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016468 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16469 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016470 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16471 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016472 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16473 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016474 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16475 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16476 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16477 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016478 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16479 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016480 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16481 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016482 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16483 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016484 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16485 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016486 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16487 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016488 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16489 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016490 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016492 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16493 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016494 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16495 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016496 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16497 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070016498 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16499 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
16500 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16501 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016502 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16503 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016504 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16505 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016506 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16507 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016508 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16509 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016510 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16512 1, 0, msm_routing_get_voice_stub_mixer,
16513 msm_routing_put_voice_stub_mixer),
16514 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16515 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16516 1, 0, msm_routing_get_voice_stub_mixer,
16517 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016518 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16519 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16520 1, 0, msm_routing_get_voice_stub_mixer,
16521 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016522 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16524 1, 0, msm_routing_get_voice_stub_mixer,
16525 msm_routing_put_voice_stub_mixer),
16526 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16527 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16528 1, 0, msm_routing_get_voice_stub_mixer,
16529 msm_routing_put_voice_stub_mixer),
16530 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16532 1, 0, msm_routing_get_voice_stub_mixer,
16533 msm_routing_put_voice_stub_mixer),
16534 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16535 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
16536 1, 0, msm_routing_get_voice_stub_mixer,
16537 msm_routing_put_voice_stub_mixer),
16538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
16540 1, 0, msm_routing_get_voice_stub_mixer,
16541 msm_routing_put_voice_stub_mixer),
16542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
16544 1, 0, msm_routing_get_voice_stub_mixer,
16545 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016546};
16547
16548static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016549 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16550 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016551 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16552 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016553 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16554 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016555 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16556 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016557 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16558 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016559 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16560 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016561 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16562 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016563 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16564 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016565 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016567 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16568 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016569 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16570 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016571 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16572 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016573 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16574 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16576 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016577 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16578 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016579 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16580 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016581 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16582 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16583 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16584 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016585 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16586 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016587 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16588 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016589 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16590 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016591 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16592 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016593 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016595 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16596 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016597 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16598 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016599 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16600 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016601 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16602 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016603 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16604 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016605 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16606 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016607 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16608 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016609 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16610 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016611 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16612 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016613 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16614 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16615 1, 0, msm_routing_get_voice_stub_mixer,
16616 msm_routing_put_voice_stub_mixer),
16617 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16618 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16619 1, 0, msm_routing_get_voice_stub_mixer,
16620 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016621 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16622 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16623 1, 0, msm_routing_get_voice_stub_mixer,
16624 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016625 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16626 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16627 1, 0, msm_routing_get_voice_stub_mixer,
16628 msm_routing_put_voice_stub_mixer),
16629 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16630 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16631 1, 0, msm_routing_get_voice_stub_mixer,
16632 msm_routing_put_voice_stub_mixer),
16633 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16635 1, 0, msm_routing_get_voice_stub_mixer,
16636 msm_routing_put_voice_stub_mixer),
16637 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16638 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
16639 1, 0, msm_routing_get_voice_stub_mixer,
16640 msm_routing_put_voice_stub_mixer),
16641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
16643 1, 0, msm_routing_get_voice_stub_mixer,
16644 msm_routing_put_voice_stub_mixer),
16645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
16647 1, 0, msm_routing_get_voice_stub_mixer,
16648 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016649};
16650
16651static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016652 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
16653 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016654 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16655 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016656 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
16657 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016658 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16659 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016660 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
16661 MSM_BACKEND_DAI_INT_BT_SCO_TX,
16662 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016663 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016664 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
16665 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016666 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16667 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016668 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16669 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016670 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16671 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016672 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16673 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016674 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16675 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016676 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16677 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016678 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16679 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016680 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16681 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016682 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16683 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016684 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16685 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016686 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16687 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016688 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16689 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16690 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016692 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
16693 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016694 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16695 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016696 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
16697 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016698 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16699 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016700 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
16701 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016702 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16703 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016704 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
16705 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016706 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16707 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016708 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
16709 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016710 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16711 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016712 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
16713 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016714 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16715 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016716 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
16717 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016718 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16719 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016720 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16721 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16722 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16723 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16724 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16725 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016726 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16727 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16728 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016729 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16730 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16731 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16732 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16733 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16734 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16735 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16736 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16737 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16738 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
16739 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
16740 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
16742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
16743 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16744 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
16745 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
16746 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016747};
16748
16749static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016750 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16751 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016752 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016754 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16755 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016756 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016758 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16759 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016760 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016762 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16763 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016764 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016766 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16767 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016768 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16769 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016770 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16771 MSM_BACKEND_DAI_INT0_MI2S_RX,
16772 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016774 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16775 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016776 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016778 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16779 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016780 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016782 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16783 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016784 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016786 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16787 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016788 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016790 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16791 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016792 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16793 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016794 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16795 MSM_BACKEND_DAI_INT0_MI2S_RX,
16796 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16797 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016798};
16799
16800static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016801 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16802 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016803 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
16806 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016807 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016809 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16810 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016811 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016813 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16814 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016815 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016817 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16818 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016819 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16820 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016821 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16822 MSM_BACKEND_DAI_INT4_MI2S_RX,
16823 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016825 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16826 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016827 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016829 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16830 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016831 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016833 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16834 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016835 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016837 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16838 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016839 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016841 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16842 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016843 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16844 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016845 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16846 MSM_BACKEND_DAI_INT4_MI2S_RX,
16847 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16848 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016849};
16850
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016851static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
16852 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16853 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16854 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
16855 msm_routing_put_port_mixer),
16856 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16857 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16858 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
16859 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080016860 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16861 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16862 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16863 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080016864 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16865 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16866 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16867 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016868};
16869
16870static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
16871 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16872 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16873 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
16874 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080016875 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16877 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16878 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016879 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080016880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053016881 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
16882 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080016883 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16885 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16886 msm_routing_put_port_mixer),
16887
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016888};
16889
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016890static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016891 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16892 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016893 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016895 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16896 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016897 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016899 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16900 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016901 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
16902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016903 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16904 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016905 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
16906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016907 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16908 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016909 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016911 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16912 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016913 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016915 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16916 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016917 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016919 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16920 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016921 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016923 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16924 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016925 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016927 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16928 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016929 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16930 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016931 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16932 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16933 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016935 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16936 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016937 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016939 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16940 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016941 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016943 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16944 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016945 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016947 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16948 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016949 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016951 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16952 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016953 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016955 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16956 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016957 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16958 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016959 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16960 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16961 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016963 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16964 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016965 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016967 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
16968 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016969 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016971 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
16972 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016973 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016975 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
16976 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016977 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016979 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
16980 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016981 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016983 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
16984 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053016985 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16986 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016987 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
16988 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16989 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
16990 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053016991 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
16992 MSM_BACKEND_DAI_SLIMBUS_0_RX,
16993 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053016994 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016995};
16996
16997static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016998 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16999 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017000 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017002 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17003 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017004 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017006 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17007 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017008 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017010 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17011 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017012 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017014 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17015 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017016 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017018 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17019 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017020 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17021 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017022 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17023 MSM_BACKEND_DAI_AUXPCM_RX,
17024 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17025 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017026};
17027
17028static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017029 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17030 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017031 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017033 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17034 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017035 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017037 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17038 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017039 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017041 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17042 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017043 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17044 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017045};
17046
17047static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017048 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17049 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017050 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017052 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17053 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017054 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017056 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17057 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017058 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17059 msm_routing_put_port_mixer),
17060};
17061
17062static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017063 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17064 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017065 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017067 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17068 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017069 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017071 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17072 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017073 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17074 msm_routing_put_port_mixer),
17075};
17076
Rohit Kumara5077932017-09-10 22:05:05 +053017077static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017078 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17079 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017080 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017082 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17083 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017084 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017086 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17087 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017088 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17089 msm_routing_put_port_mixer),
17090};
17091
Karthikeyan Manic3700752019-03-11 18:33:53 -070017092static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17093 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17094 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17095 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17096 msm_routing_put_port_mixer),
17097 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17098 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17099 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17100 msm_routing_put_port_mixer),
17101 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17102 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17103 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17104 msm_routing_put_port_mixer),
17105};
17106
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017107static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017108 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17109 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017110 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017112 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17113 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017114 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
17115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017116 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17117 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017118 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017120 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17121 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017122 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017124 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17125 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017126 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017128 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17129 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017130 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17131 msm_routing_put_port_mixer),
17132};
17133
17134static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017135 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17136 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017137 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017139 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17140 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017141 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017143 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17144 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017145 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017147 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17148 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017149 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
17150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017151 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
17152 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017153 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17154 msm_routing_put_port_mixer),
17155};
17156
17157static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017158 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17159 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017160 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017162 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17163 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017164 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017166 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17167 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017168 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017170 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17171 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017172 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017174 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17175 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017176 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017178 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17179 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017180 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017182 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17183 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017184 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017186 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17187 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017188 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017190 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17191 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017192 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017194 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17195 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017196 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017198 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17199 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017200 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017202 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17203 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017204 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17205 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017206 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17207 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17208 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17209 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017210};
17211
17212static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017213 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17214 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017215 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017217 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17218 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017219 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17220 msm_routing_put_port_mixer),
17221};
17222
17223static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017224 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17225 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017226 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017228 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17229 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017230 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17231 msm_routing_put_port_mixer),
17232};
17233
17234
17235static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017236 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17237 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017238 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17239 msm_routing_put_port_mixer),
17240};
17241
17242static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017243 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17244 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017245 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17246 msm_routing_put_port_mixer),
17247};
17248
Karthikeyan Mani57550082018-05-03 18:43:58 -070017249static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17250 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17251 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17252 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17253 msm_routing_put_port_mixer),
17254};
17255
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017256static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017257 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17258 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017259 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17260 msm_routing_put_port_mixer),
17261};
17262
17263static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017264 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17265 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017266 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017268 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17269 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017270 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17271 msm_routing_put_port_mixer),
17272};
17273
17274static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017275 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17276 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017277 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017279 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17280 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017281 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017283 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17284 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017285 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017287 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17288 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017289 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017291 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17292 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017293 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017295 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17296 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017297 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017299 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17300 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017301 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17302 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017303 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17304 MSM_BACKEND_DAI_PRI_MI2S_RX,
17305 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017307 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17308 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017309 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017311 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17312 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017313 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017315 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17316 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017317 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17318 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017319};
17320
17321static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017322 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17323 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017324 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17325 msm_routing_put_port_mixer),
17326};
17327
17328static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017329 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17330 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017331 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017333 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17334 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017335 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017337 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17338 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017339 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017341 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17342 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017343 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017345 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17346 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017347 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017349 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17350 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017351 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017353 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17354 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017355 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017357 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17358 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017359 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17360 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017361 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17362 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
17363 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017365 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17366 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017367 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17368 msm_routing_put_port_mixer),
17369};
17370
Rohit Kumara5077932017-09-10 22:05:05 +053017371static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017372 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17373 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017374 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017376 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17377 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017378 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017380 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17381 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017382 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, 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_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017386 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017388 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17389 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017390 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17391 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017392 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17393 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
17394 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017396 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17397 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017398 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017400 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17401 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017402 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17403 msm_routing_put_port_mixer),
17404};
17405
Karthikeyan Manic3700752019-03-11 18:33:53 -070017406static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
17407 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17408 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17409 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17410 msm_routing_put_port_mixer),
17411 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17412 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17413 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17414 msm_routing_put_port_mixer),
17415 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17416 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17417 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17418 msm_routing_put_port_mixer),
17419 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17420 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17421 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17422 msm_routing_put_port_mixer),
17423 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17424 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17425 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17426 msm_routing_put_port_mixer),
17427 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17428 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17429 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17430 msm_routing_put_port_mixer),
17431 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17432 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17433 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17434 msm_routing_put_port_mixer),
17435 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17436 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17437 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17438 msm_routing_put_port_mixer),
17439};
17440
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017441static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017442 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17443 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017444 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17445 msm_routing_get_port_mixer,
17446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017447 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17448 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017449 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17450 msm_routing_get_port_mixer,
17451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017452 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17453 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017454 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17455 msm_routing_get_port_mixer,
17456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017457 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17458 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017459 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17460 msm_routing_get_port_mixer,
17461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017462 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17463 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017464 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17465 msm_routing_get_port_mixer,
17466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017467 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17468 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017469 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17470 msm_routing_get_port_mixer,
17471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017472 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17473 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017474 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17475 msm_routing_get_port_mixer,
17476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017477 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17478 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017479 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17480 msm_routing_get_port_mixer,
17481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017482 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17483 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017484 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17485 msm_routing_get_port_mixer,
17486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017487 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17488 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017489 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17490 msm_routing_get_port_mixer,
17491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017492 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17493 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017494 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17495 msm_routing_get_port_mixer,
17496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017497 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17498 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017499 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
17503 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017504 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_TDM_TX_1", SND_SOC_NOPM,
17508 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017509 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
17513 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017514 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
17518 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017519 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
17523 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017524 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
17528 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017529 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
17533 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017534 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
17538 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017539 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17540 msm_routing_get_port_mixer,
17541 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017542 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17543 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17544 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17545 msm_routing_get_port_mixer,
17546 msm_routing_put_port_mixer),
17547 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17548 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17549 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17550 msm_routing_get_port_mixer,
17551 msm_routing_put_port_mixer),
17552 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17553 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17554 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17555 msm_routing_get_port_mixer,
17556 msm_routing_put_port_mixer),
17557 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17558 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17559 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17560 msm_routing_get_port_mixer,
17561 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017562};
17563
17564static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017565 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17566 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017567 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17568 msm_routing_get_port_mixer,
17569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017570 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17571 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017572 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17573 msm_routing_get_port_mixer,
17574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017575 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17576 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017577 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17578 msm_routing_get_port_mixer,
17579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017580 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17581 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017582 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17583 msm_routing_get_port_mixer,
17584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017585 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17586 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017587 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17588 msm_routing_get_port_mixer,
17589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017590 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17591 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017592 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17593 msm_routing_get_port_mixer,
17594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017595 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17596 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017597 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17598 msm_routing_get_port_mixer,
17599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017600 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17601 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017602 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17603 msm_routing_get_port_mixer,
17604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017605 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17606 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017607 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17608 msm_routing_get_port_mixer,
17609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017610 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17611 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017612 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17613 msm_routing_get_port_mixer,
17614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017615 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17616 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017617 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17618 msm_routing_get_port_mixer,
17619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017620 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17621 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017622 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
17626 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017627 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_TDM_TX_1", SND_SOC_NOPM,
17631 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017632 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
17636 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017637 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
17641 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017642 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
17646 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017647 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
17651 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017652 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
17656 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017657 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
17661 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017662 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17663 msm_routing_get_port_mixer,
17664 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017665 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17666 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17667 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17668 msm_routing_get_port_mixer,
17669 msm_routing_put_port_mixer),
17670 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17671 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17672 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17673 msm_routing_get_port_mixer,
17674 msm_routing_put_port_mixer),
17675 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17676 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17677 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17678 msm_routing_get_port_mixer,
17679 msm_routing_put_port_mixer),
17680 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17681 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17682 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17683 msm_routing_get_port_mixer,
17684 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017685};
17686
17687static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017688 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17689 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017690 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17691 msm_routing_get_port_mixer,
17692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017693 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17694 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017695 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17696 msm_routing_get_port_mixer,
17697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017698 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17699 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017700 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17701 msm_routing_get_port_mixer,
17702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017703 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17704 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017705 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17706 msm_routing_get_port_mixer,
17707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017708 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17709 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017710 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17711 msm_routing_get_port_mixer,
17712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017713 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17714 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017715 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17716 msm_routing_get_port_mixer,
17717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017718 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17719 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017720 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17721 msm_routing_get_port_mixer,
17722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017723 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17724 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017725 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17726 msm_routing_get_port_mixer,
17727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017728 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17729 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017730 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17731 msm_routing_get_port_mixer,
17732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017733 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17734 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017735 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17736 msm_routing_get_port_mixer,
17737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017738 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17739 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017740 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17741 msm_routing_get_port_mixer,
17742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017743 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17744 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017745 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
17749 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017750 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_TDM_TX_1", SND_SOC_NOPM,
17754 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017755 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
17759 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017760 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
17764 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017765 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
17769 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017770 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
17774 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017775 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
17779 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017780 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
17784 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017785 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17786 msm_routing_get_port_mixer,
17787 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017788 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17789 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17790 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17791 msm_routing_get_port_mixer,
17792 msm_routing_put_port_mixer),
17793 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17794 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17795 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17796 msm_routing_get_port_mixer,
17797 msm_routing_put_port_mixer),
17798 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17799 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17800 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17801 msm_routing_get_port_mixer,
17802 msm_routing_put_port_mixer),
17803 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17804 MSM_BACKEND_DAI_PRI_TDM_RX_2,
17805 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17806 msm_routing_get_port_mixer,
17807 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017808};
17809
17810static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017811 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17812 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017813 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17814 msm_routing_get_port_mixer,
17815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017816 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17817 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017818 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17819 msm_routing_get_port_mixer,
17820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017821 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17822 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017823 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17824 msm_routing_get_port_mixer,
17825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017826 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17827 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017828 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17829 msm_routing_get_port_mixer,
17830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017831 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17832 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017833 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17834 msm_routing_get_port_mixer,
17835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017836 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17837 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017838 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17839 msm_routing_get_port_mixer,
17840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017841 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17842 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017843 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17844 msm_routing_get_port_mixer,
17845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017846 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17847 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017848 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17849 msm_routing_get_port_mixer,
17850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017851 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17852 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017853 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17854 msm_routing_get_port_mixer,
17855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017856 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17857 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017858 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17859 msm_routing_get_port_mixer,
17860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017861 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17862 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017863 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17864 msm_routing_get_port_mixer,
17865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017866 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17867 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017868 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17869 msm_routing_get_port_mixer,
17870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017871 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17872 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017873 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17874 msm_routing_get_port_mixer,
17875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017876 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17877 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017878 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17879 msm_routing_get_port_mixer,
17880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017881 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17882 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017883 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17884 msm_routing_get_port_mixer,
17885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017886 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17887 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017888 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17889 msm_routing_get_port_mixer,
17890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017891 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17892 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017893 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17894 msm_routing_get_port_mixer,
17895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017896 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17897 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017898 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17899 msm_routing_get_port_mixer,
17900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017901 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17902 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017903 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17904 msm_routing_get_port_mixer,
17905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017906 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17907 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017908 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17909 msm_routing_get_port_mixer,
17910 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017911 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17912 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17913 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17914 msm_routing_get_port_mixer,
17915 msm_routing_put_port_mixer),
17916 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17917 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17918 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17919 msm_routing_get_port_mixer,
17920 msm_routing_put_port_mixer),
17921 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17922 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17923 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17924 msm_routing_get_port_mixer,
17925 msm_routing_put_port_mixer),
17926 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17927 MSM_BACKEND_DAI_PRI_TDM_RX_3,
17928 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17929 msm_routing_get_port_mixer,
17930 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017931};
17932
17933static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017934 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17935 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017936 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
17940 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017941 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
17945 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017946 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
17950 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017951 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17955 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017956 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
17960 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017961 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17965 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017966 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17970 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017971 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17972 msm_routing_get_port_mixer,
17973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017974 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
17975 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017976 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
17977 msm_routing_get_port_mixer,
17978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017979 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
17980 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017981 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
17982 msm_routing_get_port_mixer,
17983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017984 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
17985 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017986 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
17987 msm_routing_get_port_mixer,
17988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017989 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
17990 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017991 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
17992 msm_routing_get_port_mixer,
17993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017994 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17995 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017996 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17997 msm_routing_get_port_mixer,
17998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017999 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18000 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018001 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18002 msm_routing_get_port_mixer,
18003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018004 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18005 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018006 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18007 msm_routing_get_port_mixer,
18008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018009 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18010 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018011 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18012 msm_routing_get_port_mixer,
18013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018014 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18015 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018016 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18017 msm_routing_get_port_mixer,
18018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018019 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18020 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018021 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18022 msm_routing_get_port_mixer,
18023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018024 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18025 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018026 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18027 msm_routing_get_port_mixer,
18028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018029 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18030 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018031 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18032 msm_routing_get_port_mixer,
18033 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018034 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18035 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18036 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18037 msm_routing_get_port_mixer,
18038 msm_routing_put_port_mixer),
18039 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18040 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18041 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18042 msm_routing_get_port_mixer,
18043 msm_routing_put_port_mixer),
18044 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18045 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18046 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18047 msm_routing_get_port_mixer,
18048 msm_routing_put_port_mixer),
18049 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18050 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18051 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18052 msm_routing_get_port_mixer,
18053 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018054};
18055
18056static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018057 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18058 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018059 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
18063 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018064 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
18068 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018069 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
18073 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018074 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18078 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018079 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
18083 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018084 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18088 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018089 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18093 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018094 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18095 msm_routing_get_port_mixer,
18096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018097 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18098 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018099 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18100 msm_routing_get_port_mixer,
18101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018102 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18103 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018104 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18105 msm_routing_get_port_mixer,
18106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018107 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18108 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018109 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18110 msm_routing_get_port_mixer,
18111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018112 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18113 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018114 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18115 msm_routing_get_port_mixer,
18116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018117 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18118 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018119 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18120 msm_routing_get_port_mixer,
18121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018122 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18123 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018124 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18125 msm_routing_get_port_mixer,
18126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018127 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18128 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018129 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18130 msm_routing_get_port_mixer,
18131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018132 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18133 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018134 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18135 msm_routing_get_port_mixer,
18136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018137 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18138 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018139 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18140 msm_routing_get_port_mixer,
18141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018142 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18143 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018144 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18145 msm_routing_get_port_mixer,
18146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018147 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18148 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018149 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18150 msm_routing_get_port_mixer,
18151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018152 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18153 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018154 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18155 msm_routing_get_port_mixer,
18156 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018157 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18158 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18159 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18160 msm_routing_get_port_mixer,
18161 msm_routing_put_port_mixer),
18162 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18163 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18164 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18165 msm_routing_get_port_mixer,
18166 msm_routing_put_port_mixer),
18167 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18168 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18169 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18170 msm_routing_get_port_mixer,
18171 msm_routing_put_port_mixer),
18172 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18173 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18174 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18175 msm_routing_get_port_mixer,
18176 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018177};
18178
18179static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018180 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18181 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018182 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
18186 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018187 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
18191 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018192 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
18196 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018197 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18201 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018202 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
18206 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018207 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18211 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018212 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18216 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018217 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18218 msm_routing_get_port_mixer,
18219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018220 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18221 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018222 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18223 msm_routing_get_port_mixer,
18224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018225 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18226 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018227 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18228 msm_routing_get_port_mixer,
18229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018230 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18231 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018232 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18233 msm_routing_get_port_mixer,
18234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018235 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18236 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018237 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18238 msm_routing_get_port_mixer,
18239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018240 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18241 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018242 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18243 msm_routing_get_port_mixer,
18244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018245 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18246 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018247 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18248 msm_routing_get_port_mixer,
18249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018250 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18251 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018252 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18253 msm_routing_get_port_mixer,
18254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018255 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18256 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018257 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18258 msm_routing_get_port_mixer,
18259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018260 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18261 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018262 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18263 msm_routing_get_port_mixer,
18264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018265 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18266 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018267 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18268 msm_routing_get_port_mixer,
18269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018270 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18271 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018272 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18273 msm_routing_get_port_mixer,
18274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018275 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18276 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018277 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18278 msm_routing_get_port_mixer,
18279 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018280 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18281 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18282 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18283 msm_routing_get_port_mixer,
18284 msm_routing_put_port_mixer),
18285 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18286 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18287 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18288 msm_routing_get_port_mixer,
18289 msm_routing_put_port_mixer),
18290 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18291 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18292 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18293 msm_routing_get_port_mixer,
18294 msm_routing_put_port_mixer),
18295 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18296 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18297 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18298 msm_routing_get_port_mixer,
18299 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018300};
18301
18302static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018303 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18304 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018305 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
18309 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018310 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
18314 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018315 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
18319 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018320 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18324 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018325 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
18329 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018330 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18334 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018335 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18339 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018340 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18341 msm_routing_get_port_mixer,
18342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018343 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18344 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018345 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18346 msm_routing_get_port_mixer,
18347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018348 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18349 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018350 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18351 msm_routing_get_port_mixer,
18352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018353 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18354 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018355 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18356 msm_routing_get_port_mixer,
18357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018358 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18359 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018360 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18361 msm_routing_get_port_mixer,
18362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018363 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18364 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018365 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18366 msm_routing_get_port_mixer,
18367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018368 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18369 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018370 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18371 msm_routing_get_port_mixer,
18372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018373 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18374 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018375 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18376 msm_routing_get_port_mixer,
18377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018378 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18379 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018380 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18381 msm_routing_get_port_mixer,
18382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018383 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18384 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018385 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18386 msm_routing_get_port_mixer,
18387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018388 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18389 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018390 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18391 msm_routing_get_port_mixer,
18392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018393 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18394 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018395 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18396 msm_routing_get_port_mixer,
18397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018398 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18399 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018400 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18401 msm_routing_get_port_mixer,
18402 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018403 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18404 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18405 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18406 msm_routing_get_port_mixer,
18407 msm_routing_put_port_mixer),
18408 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18409 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18410 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18411 msm_routing_get_port_mixer,
18412 msm_routing_put_port_mixer),
18413 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18414 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18415 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18416 msm_routing_get_port_mixer,
18417 msm_routing_put_port_mixer),
18418 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18419 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18420 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18421 msm_routing_get_port_mixer,
18422 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018423};
18424
Derek Chenfdcc0982018-10-02 15:14:03 -070018425static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
18426 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
18427 MSM_BACKEND_DAI_SEC_TDM_RX_7,
18428 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
18429 msm_routing_get_port_mixer,
18430 msm_routing_put_port_mixer),
18431};
18432
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018433static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018434 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18435 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018436 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18437 msm_routing_get_port_mixer,
18438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018439 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18440 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018441 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18442 msm_routing_get_port_mixer,
18443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018444 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18445 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018446 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18447 msm_routing_get_port_mixer,
18448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018449 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18450 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018451 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18452 msm_routing_get_port_mixer,
18453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018454 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18455 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018456 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18457 msm_routing_get_port_mixer,
18458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018459 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18460 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018461 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18462 msm_routing_get_port_mixer,
18463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018464 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18465 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018466 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18467 msm_routing_get_port_mixer,
18468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018469 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18470 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018471 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18472 msm_routing_get_port_mixer,
18473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018474 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18475 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018476 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18477 msm_routing_get_port_mixer,
18478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018479 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18480 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018481 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18482 msm_routing_get_port_mixer,
18483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018484 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18485 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018486 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18487 msm_routing_get_port_mixer,
18488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018489 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18490 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018491 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
18495 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018496 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18500 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018501 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18505 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018506 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18510 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018511 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
18515 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018516 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
18520 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018521 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
18525 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018526 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
18530 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018531 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18532 msm_routing_get_port_mixer,
18533 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018534 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18535 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18536 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18537 msm_routing_get_port_mixer,
18538 msm_routing_put_port_mixer),
18539 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18540 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18541 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18542 msm_routing_get_port_mixer,
18543 msm_routing_put_port_mixer),
18544 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18545 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18546 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18547 msm_routing_get_port_mixer,
18548 msm_routing_put_port_mixer),
18549 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18550 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18551 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18552 msm_routing_get_port_mixer,
18553 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018554};
18555
18556static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018557 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18558 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018559 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18560 msm_routing_get_port_mixer,
18561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018562 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18563 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018564 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18565 msm_routing_get_port_mixer,
18566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018567 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18568 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018569 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18570 msm_routing_get_port_mixer,
18571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018572 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18573 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018574 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18575 msm_routing_get_port_mixer,
18576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018577 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18578 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018579 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18580 msm_routing_get_port_mixer,
18581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018582 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18583 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018584 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18585 msm_routing_get_port_mixer,
18586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018587 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18588 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018589 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18590 msm_routing_get_port_mixer,
18591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018592 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18593 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018594 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18595 msm_routing_get_port_mixer,
18596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018597 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18598 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018599 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18600 msm_routing_get_port_mixer,
18601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018602 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18603 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018604 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18605 msm_routing_get_port_mixer,
18606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018607 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18608 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018609 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18610 msm_routing_get_port_mixer,
18611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018612 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18613 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018614 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
18618 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018619 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18623 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018624 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18628 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018629 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18633 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018634 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
18638 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018639 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
18643 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018644 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
18648 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018649 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
18653 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018654 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18655 msm_routing_get_port_mixer,
18656 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018657 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18658 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18659 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18660 msm_routing_get_port_mixer,
18661 msm_routing_put_port_mixer),
18662 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18663 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18664 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18665 msm_routing_get_port_mixer,
18666 msm_routing_put_port_mixer),
18667 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18668 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18669 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18670 msm_routing_get_port_mixer,
18671 msm_routing_put_port_mixer),
18672 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18673 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18674 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18675 msm_routing_get_port_mixer,
18676 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018677};
18678
18679static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018680 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18681 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018682 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18683 msm_routing_get_port_mixer,
18684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018685 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18686 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018687 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18688 msm_routing_get_port_mixer,
18689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018690 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18691 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018692 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18693 msm_routing_get_port_mixer,
18694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018695 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18696 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018697 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18698 msm_routing_get_port_mixer,
18699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018700 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18701 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018702 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18703 msm_routing_get_port_mixer,
18704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018705 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18706 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018707 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18708 msm_routing_get_port_mixer,
18709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018710 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18711 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018712 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18713 msm_routing_get_port_mixer,
18714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018715 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18716 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018717 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18718 msm_routing_get_port_mixer,
18719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018720 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18721 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018722 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18723 msm_routing_get_port_mixer,
18724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018725 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18726 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018727 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18728 msm_routing_get_port_mixer,
18729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018730 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18731 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018732 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18733 msm_routing_get_port_mixer,
18734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018735 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18736 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018737 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
18741 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018742 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18746 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018747 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18751 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018752 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18756 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018757 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
18761 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018762 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
18766 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018767 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
18771 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018772 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
18776 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018777 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18778 msm_routing_get_port_mixer,
18779 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018780 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18781 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18782 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18783 msm_routing_get_port_mixer,
18784 msm_routing_put_port_mixer),
18785 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18786 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18787 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18788 msm_routing_get_port_mixer,
18789 msm_routing_put_port_mixer),
18790 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18791 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18792 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18793 msm_routing_get_port_mixer,
18794 msm_routing_put_port_mixer),
18795 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18796 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18797 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18798 msm_routing_get_port_mixer,
18799 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018800};
18801
18802static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018803 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18804 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018805 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18806 msm_routing_get_port_mixer,
18807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018808 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18809 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018810 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18811 msm_routing_get_port_mixer,
18812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018813 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18814 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018815 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18816 msm_routing_get_port_mixer,
18817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018818 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18819 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018820 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18821 msm_routing_get_port_mixer,
18822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018823 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18824 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018825 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18826 msm_routing_get_port_mixer,
18827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018828 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18829 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018830 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18831 msm_routing_get_port_mixer,
18832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018833 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18834 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018835 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18836 msm_routing_get_port_mixer,
18837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018838 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18839 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018840 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18841 msm_routing_get_port_mixer,
18842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018843 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18844 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018845 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18846 msm_routing_get_port_mixer,
18847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018848 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18849 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018850 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18851 msm_routing_get_port_mixer,
18852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018853 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18854 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018855 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18856 msm_routing_get_port_mixer,
18857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018858 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18859 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018860 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18861 msm_routing_get_port_mixer,
18862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018863 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18864 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018865 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18866 msm_routing_get_port_mixer,
18867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018868 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18869 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018870 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18871 msm_routing_get_port_mixer,
18872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018873 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18874 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018875 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18876 msm_routing_get_port_mixer,
18877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018878 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18879 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018880 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18881 msm_routing_get_port_mixer,
18882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018883 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18884 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018885 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18886 msm_routing_get_port_mixer,
18887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018888 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18889 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018890 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18891 msm_routing_get_port_mixer,
18892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018893 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18894 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018895 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18896 msm_routing_get_port_mixer,
18897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018898 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18899 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018900 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18901 msm_routing_get_port_mixer,
18902 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018903 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18904 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18905 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18906 msm_routing_get_port_mixer,
18907 msm_routing_put_port_mixer),
18908 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18909 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18910 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18911 msm_routing_get_port_mixer,
18912 msm_routing_put_port_mixer),
18913 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18914 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18915 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18916 msm_routing_get_port_mixer,
18917 msm_routing_put_port_mixer),
18918 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18919 MSM_BACKEND_DAI_TERT_TDM_RX_3,
18920 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18921 msm_routing_get_port_mixer,
18922 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018923};
18924
18925static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018926 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18927 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018928 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
18932 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018933 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("TERT_MI2S_TX", SND_SOC_NOPM,
18937 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018938 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
18942 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018943 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18947 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018948 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
18952 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018953 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18957 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018958 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18962 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018963 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18964 msm_routing_get_port_mixer,
18965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018966 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18967 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018968 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18969 msm_routing_get_port_mixer,
18970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018971 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18972 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018973 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18974 msm_routing_get_port_mixer,
18975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018976 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18977 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018978 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18979 msm_routing_get_port_mixer,
18980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018981 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18982 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018983 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18984 msm_routing_get_port_mixer,
18985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018986 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18987 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018988 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18989 msm_routing_get_port_mixer,
18990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018991 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18992 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018993 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18994 msm_routing_get_port_mixer,
18995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018996 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18997 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018998 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18999 msm_routing_get_port_mixer,
19000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019001 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19002 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019003 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19004 msm_routing_get_port_mixer,
19005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019006 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19007 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019008 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19009 msm_routing_get_port_mixer,
19010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019011 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19012 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019013 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19014 msm_routing_get_port_mixer,
19015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019016 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19017 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019018 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19019 msm_routing_get_port_mixer,
19020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019021 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19022 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019023 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19024 msm_routing_get_port_mixer,
19025 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019026 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19027 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19028 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19029 msm_routing_get_port_mixer,
19030 msm_routing_put_port_mixer),
19031 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19032 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19033 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19034 msm_routing_get_port_mixer,
19035 msm_routing_put_port_mixer),
19036 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19037 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19038 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19039 msm_routing_get_port_mixer,
19040 msm_routing_put_port_mixer),
19041 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19042 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19043 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19044 msm_routing_get_port_mixer,
19045 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019046};
19047
19048static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019049 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19050 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019051 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
19055 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019056 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("TERT_MI2S_TX", SND_SOC_NOPM,
19060 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019061 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
19065 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019066 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19070 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019071 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
19075 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019076 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19080 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019081 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19085 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019086 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19087 msm_routing_get_port_mixer,
19088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019089 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19090 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019091 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19092 msm_routing_get_port_mixer,
19093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019094 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19095 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019096 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19097 msm_routing_get_port_mixer,
19098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019099 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19100 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019101 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19102 msm_routing_get_port_mixer,
19103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019104 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19105 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019106 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19107 msm_routing_get_port_mixer,
19108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019109 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19110 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019111 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19112 msm_routing_get_port_mixer,
19113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019114 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19115 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019116 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19117 msm_routing_get_port_mixer,
19118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019119 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19120 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019121 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19122 msm_routing_get_port_mixer,
19123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019124 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19125 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019126 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19127 msm_routing_get_port_mixer,
19128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019129 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19130 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019131 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19132 msm_routing_get_port_mixer,
19133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019134 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19135 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019136 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19137 msm_routing_get_port_mixer,
19138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019139 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19140 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019141 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19142 msm_routing_get_port_mixer,
19143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019144 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19145 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019146 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19147 msm_routing_get_port_mixer,
19148 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019149 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19150 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19151 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19152 msm_routing_get_port_mixer,
19153 msm_routing_put_port_mixer),
19154 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19155 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19156 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19157 msm_routing_get_port_mixer,
19158 msm_routing_put_port_mixer),
19159 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19160 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19161 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19162 msm_routing_get_port_mixer,
19163 msm_routing_put_port_mixer),
19164 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19165 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19166 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19167 msm_routing_get_port_mixer,
19168 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019169};
19170
19171static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019172 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19173 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019174 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
19178 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019179 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("TERT_MI2S_TX", SND_SOC_NOPM,
19183 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019184 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
19188 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019189 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19193 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019194 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
19198 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019199 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19203 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019204 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19208 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019209 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19210 msm_routing_get_port_mixer,
19211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019212 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19213 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019214 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19215 msm_routing_get_port_mixer,
19216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019217 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19218 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019219 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19220 msm_routing_get_port_mixer,
19221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019222 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19223 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019224 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19225 msm_routing_get_port_mixer,
19226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019227 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19228 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019229 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19230 msm_routing_get_port_mixer,
19231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019232 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19233 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019234 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19235 msm_routing_get_port_mixer,
19236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019237 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19238 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019239 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19240 msm_routing_get_port_mixer,
19241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019242 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19243 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019244 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19245 msm_routing_get_port_mixer,
19246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019247 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19248 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019249 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19250 msm_routing_get_port_mixer,
19251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019252 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19253 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019254 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19255 msm_routing_get_port_mixer,
19256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019257 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19258 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019259 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19260 msm_routing_get_port_mixer,
19261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019262 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19263 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019264 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19265 msm_routing_get_port_mixer,
19266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019267 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19268 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019269 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19270 msm_routing_get_port_mixer,
19271 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019272 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19273 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19274 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19275 msm_routing_get_port_mixer,
19276 msm_routing_put_port_mixer),
19277 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19278 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19279 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19280 msm_routing_get_port_mixer,
19281 msm_routing_put_port_mixer),
19282 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19283 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19284 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19285 msm_routing_get_port_mixer,
19286 msm_routing_put_port_mixer),
19287 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19288 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19289 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19290 msm_routing_get_port_mixer,
19291 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019292};
19293
19294static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019295 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19296 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019297 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
19301 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019302 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("TERT_MI2S_TX", SND_SOC_NOPM,
19306 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019307 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
19311 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019312 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19316 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019317 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
19321 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019322 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19326 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019327 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19331 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019332 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19333 msm_routing_get_port_mixer,
19334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019335 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19336 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019337 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19338 msm_routing_get_port_mixer,
19339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019340 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19341 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019342 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19343 msm_routing_get_port_mixer,
19344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019345 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19346 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019347 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19348 msm_routing_get_port_mixer,
19349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019350 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19351 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019352 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19353 msm_routing_get_port_mixer,
19354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019355 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19356 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019357 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19358 msm_routing_get_port_mixer,
19359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019360 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19361 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019362 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19363 msm_routing_get_port_mixer,
19364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019365 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19366 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019367 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19368 msm_routing_get_port_mixer,
19369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019370 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19371 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019372 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19373 msm_routing_get_port_mixer,
19374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019375 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19376 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019377 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19378 msm_routing_get_port_mixer,
19379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019380 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19381 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019382 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19383 msm_routing_get_port_mixer,
19384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019385 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19386 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019387 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19388 msm_routing_get_port_mixer,
19389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019390 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19391 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019392 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19393 msm_routing_get_port_mixer,
19394 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019395 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19396 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19397 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19398 msm_routing_get_port_mixer,
19399 msm_routing_put_port_mixer),
19400 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19401 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19402 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19403 msm_routing_get_port_mixer,
19404 msm_routing_put_port_mixer),
19405 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19406 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19407 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19408 msm_routing_get_port_mixer,
19409 msm_routing_put_port_mixer),
19410 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19411 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19412 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19413 msm_routing_get_port_mixer,
19414 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019415};
19416
Derek Chenb9048cb2019-03-07 14:54:13 -050019417static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
19418 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
19419 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19420 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
19421 msm_routing_get_port_mixer,
19422 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070019423 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
19424 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19425 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
19426 msm_routing_get_port_mixer,
19427 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050019428};
19429
Rohit Kumara5077932017-09-10 22:05:05 +053019430static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019431 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19432 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019433 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19434 msm_routing_get_port_mixer,
19435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019436 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19437 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019438 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19439 msm_routing_get_port_mixer,
19440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019441 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19442 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019443 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19444 msm_routing_get_port_mixer,
19445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019446 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19447 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019448 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19449 msm_routing_get_port_mixer,
19450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019451 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19452 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019453 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19454 msm_routing_get_port_mixer,
19455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019456 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19457 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019458 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19459 msm_routing_get_port_mixer,
19460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019461 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19462 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019463 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19464 msm_routing_get_port_mixer,
19465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019466 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19467 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019468 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19469 msm_routing_get_port_mixer,
19470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019471 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19472 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019473 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19474 msm_routing_get_port_mixer,
19475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019476 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19477 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019478 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19479 msm_routing_get_port_mixer,
19480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019481 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19482 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019483 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19484 msm_routing_get_port_mixer,
19485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019486 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19487 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019488 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19489 msm_routing_get_port_mixer,
19490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019491 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19492 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019493 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19494 msm_routing_get_port_mixer,
19495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019496 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19497 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019498 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19499 msm_routing_get_port_mixer,
19500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019501 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19502 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019503 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19504 msm_routing_get_port_mixer,
19505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019506 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19507 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019508 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19509 msm_routing_get_port_mixer,
19510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019511 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19512 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019513 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19514 msm_routing_get_port_mixer,
19515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019516 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19517 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019518 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19519 msm_routing_get_port_mixer,
19520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019521 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19522 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019523 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19524 msm_routing_get_port_mixer,
19525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019526 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19527 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019528 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19529 msm_routing_get_port_mixer,
19530 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019531 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19532 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19533 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19534 msm_routing_get_port_mixer,
19535 msm_routing_put_port_mixer),
19536 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19537 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19538 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19539 msm_routing_get_port_mixer,
19540 msm_routing_put_port_mixer),
19541 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19542 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19543 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19544 msm_routing_get_port_mixer,
19545 msm_routing_put_port_mixer),
19546 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19547 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19548 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19549 msm_routing_get_port_mixer,
19550 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019551};
19552
19553static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019554 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19555 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019556 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19557 msm_routing_get_port_mixer,
19558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019559 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19560 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019561 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19562 msm_routing_get_port_mixer,
19563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019564 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19565 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019566 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19567 msm_routing_get_port_mixer,
19568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019569 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19570 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019571 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19572 msm_routing_get_port_mixer,
19573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019574 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19575 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019576 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19577 msm_routing_get_port_mixer,
19578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019579 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19580 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019581 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19582 msm_routing_get_port_mixer,
19583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019584 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19585 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019586 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19587 msm_routing_get_port_mixer,
19588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019589 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19590 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019591 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19592 msm_routing_get_port_mixer,
19593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019594 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19595 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019596 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19597 msm_routing_get_port_mixer,
19598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019599 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19600 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019601 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19602 msm_routing_get_port_mixer,
19603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019604 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19605 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019606 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19607 msm_routing_get_port_mixer,
19608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019609 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19610 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019611 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19612 msm_routing_get_port_mixer,
19613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019614 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19615 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019616 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19617 msm_routing_get_port_mixer,
19618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019619 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19620 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019621 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19622 msm_routing_get_port_mixer,
19623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019624 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19625 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019626 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19627 msm_routing_get_port_mixer,
19628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019629 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19630 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019631 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19632 msm_routing_get_port_mixer,
19633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019634 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19635 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019636 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19637 msm_routing_get_port_mixer,
19638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019639 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19640 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019641 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19642 msm_routing_get_port_mixer,
19643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019644 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19645 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019646 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19647 msm_routing_get_port_mixer,
19648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019649 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19650 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019651 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19652 msm_routing_get_port_mixer,
19653 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019654 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19655 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19656 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19657 msm_routing_get_port_mixer,
19658 msm_routing_put_port_mixer),
19659 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19660 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19661 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19662 msm_routing_get_port_mixer,
19663 msm_routing_put_port_mixer),
19664 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19665 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19666 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19667 msm_routing_get_port_mixer,
19668 msm_routing_put_port_mixer),
19669 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19670 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19671 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19672 msm_routing_get_port_mixer,
19673 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019674};
19675
19676static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019677 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19678 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019679 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19680 msm_routing_get_port_mixer,
19681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019682 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19683 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019684 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19685 msm_routing_get_port_mixer,
19686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019687 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19688 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019689 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19690 msm_routing_get_port_mixer,
19691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019692 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19693 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019694 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19695 msm_routing_get_port_mixer,
19696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019697 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19698 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019699 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19700 msm_routing_get_port_mixer,
19701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019702 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19703 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019704 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19705 msm_routing_get_port_mixer,
19706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019707 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19708 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019709 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19710 msm_routing_get_port_mixer,
19711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019712 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19713 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019714 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19715 msm_routing_get_port_mixer,
19716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019717 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19718 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019719 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19720 msm_routing_get_port_mixer,
19721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019722 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19723 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019724 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19725 msm_routing_get_port_mixer,
19726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019727 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19728 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019729 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19730 msm_routing_get_port_mixer,
19731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019732 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19733 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019734 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19735 msm_routing_get_port_mixer,
19736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019737 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19738 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019739 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19740 msm_routing_get_port_mixer,
19741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019742 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19743 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019744 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19745 msm_routing_get_port_mixer,
19746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019747 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19748 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019749 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19750 msm_routing_get_port_mixer,
19751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019752 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19753 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019754 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19755 msm_routing_get_port_mixer,
19756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019757 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19758 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019759 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19760 msm_routing_get_port_mixer,
19761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019762 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19763 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019764 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19765 msm_routing_get_port_mixer,
19766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019767 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19768 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019769 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19770 msm_routing_get_port_mixer,
19771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019772 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19773 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019774 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19775 msm_routing_get_port_mixer,
19776 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019777 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19778 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19779 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19780 msm_routing_get_port_mixer,
19781 msm_routing_put_port_mixer),
19782 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19783 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19784 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19785 msm_routing_get_port_mixer,
19786 msm_routing_put_port_mixer),
19787 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19788 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19789 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19790 msm_routing_get_port_mixer,
19791 msm_routing_put_port_mixer),
19792 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19793 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19794 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19795 msm_routing_get_port_mixer,
19796 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019797};
19798
19799static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019800 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19801 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019802 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19803 msm_routing_get_port_mixer,
19804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019805 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19806 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019807 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19808 msm_routing_get_port_mixer,
19809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019810 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19811 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019812 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19813 msm_routing_get_port_mixer,
19814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019815 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19816 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019817 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19818 msm_routing_get_port_mixer,
19819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019820 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19821 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019822 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19823 msm_routing_get_port_mixer,
19824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019825 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19826 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019827 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19828 msm_routing_get_port_mixer,
19829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019830 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19831 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019832 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19833 msm_routing_get_port_mixer,
19834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019835 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19836 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019837 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19838 msm_routing_get_port_mixer,
19839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019840 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19841 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019842 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19843 msm_routing_get_port_mixer,
19844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019845 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19846 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019847 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19848 msm_routing_get_port_mixer,
19849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019850 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19851 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019852 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19853 msm_routing_get_port_mixer,
19854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019855 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19856 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019857 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19858 msm_routing_get_port_mixer,
19859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019860 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19861 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019862 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19863 msm_routing_get_port_mixer,
19864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019865 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19866 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019867 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19868 msm_routing_get_port_mixer,
19869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019870 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19871 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019872 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19873 msm_routing_get_port_mixer,
19874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019875 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19876 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019877 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19878 msm_routing_get_port_mixer,
19879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019880 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19881 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019882 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19883 msm_routing_get_port_mixer,
19884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019885 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19886 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019887 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19888 msm_routing_get_port_mixer,
19889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019890 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19891 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019892 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19893 msm_routing_get_port_mixer,
19894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019895 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19896 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019897 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19898 msm_routing_get_port_mixer,
19899 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019900 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19901 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19902 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19903 msm_routing_get_port_mixer,
19904 msm_routing_put_port_mixer),
19905 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19906 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19907 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19908 msm_routing_get_port_mixer,
19909 msm_routing_put_port_mixer),
19910 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19911 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19912 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19913 msm_routing_get_port_mixer,
19914 msm_routing_put_port_mixer),
19915 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19916 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
19917 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19918 msm_routing_get_port_mixer,
19919 msm_routing_put_port_mixer),
19920};
19921
19922static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
19923 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19924 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19925 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19926 msm_routing_get_port_mixer,
19927 msm_routing_put_port_mixer),
19928 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19929 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19930 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19931 msm_routing_get_port_mixer,
19932 msm_routing_put_port_mixer),
19933 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19934 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19935 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19936 msm_routing_get_port_mixer,
19937 msm_routing_put_port_mixer),
19938 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19939 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19940 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19941 msm_routing_get_port_mixer,
19942 msm_routing_put_port_mixer),
19943 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19944 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19945 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19946 msm_routing_get_port_mixer,
19947 msm_routing_put_port_mixer),
19948 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19949 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19950 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19951 msm_routing_get_port_mixer,
19952 msm_routing_put_port_mixer),
19953 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19954 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19955 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19956 msm_routing_get_port_mixer,
19957 msm_routing_put_port_mixer),
19958 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19959 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19960 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19961 msm_routing_get_port_mixer,
19962 msm_routing_put_port_mixer),
19963 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19964 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19965 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19966 msm_routing_get_port_mixer,
19967 msm_routing_put_port_mixer),
19968 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19969 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19970 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19971 msm_routing_get_port_mixer,
19972 msm_routing_put_port_mixer),
19973 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19974 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19975 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19976 msm_routing_get_port_mixer,
19977 msm_routing_put_port_mixer),
19978 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19979 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19980 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19981 msm_routing_get_port_mixer,
19982 msm_routing_put_port_mixer),
19983 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19984 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19985 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19986 msm_routing_get_port_mixer,
19987 msm_routing_put_port_mixer),
19988 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19989 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19990 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19991 msm_routing_get_port_mixer,
19992 msm_routing_put_port_mixer),
19993 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19994 MSM_BACKEND_DAI_SEN_TDM_RX_0,
19995 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19996 msm_routing_get_port_mixer,
19997 msm_routing_put_port_mixer),
19998 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19999 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20000 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20001 msm_routing_get_port_mixer,
20002 msm_routing_put_port_mixer),
20003 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20004 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20005 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20006 msm_routing_get_port_mixer,
20007 msm_routing_put_port_mixer),
20008 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20009 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20010 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20011 msm_routing_get_port_mixer,
20012 msm_routing_put_port_mixer),
20013 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20014 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20015 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20016 msm_routing_get_port_mixer,
20017 msm_routing_put_port_mixer),
20018 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20019 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20020 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20021 msm_routing_get_port_mixer,
20022 msm_routing_put_port_mixer),
20023 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20024 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20025 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20026 msm_routing_get_port_mixer,
20027 msm_routing_put_port_mixer),
20028 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20029 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20030 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20031 msm_routing_get_port_mixer,
20032 msm_routing_put_port_mixer),
20033 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20034 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20035 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20036 msm_routing_get_port_mixer,
20037 msm_routing_put_port_mixer),
20038 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20039 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20040 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20041 msm_routing_get_port_mixer,
20042 msm_routing_put_port_mixer),
20043};
20044
20045static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20046 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20047 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20048 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20049 msm_routing_get_port_mixer,
20050 msm_routing_put_port_mixer),
20051 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20052 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20053 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20054 msm_routing_get_port_mixer,
20055 msm_routing_put_port_mixer),
20056 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20057 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20058 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20059 msm_routing_get_port_mixer,
20060 msm_routing_put_port_mixer),
20061 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20062 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20063 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20064 msm_routing_get_port_mixer,
20065 msm_routing_put_port_mixer),
20066 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20067 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20068 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20069 msm_routing_get_port_mixer,
20070 msm_routing_put_port_mixer),
20071 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20072 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20073 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20074 msm_routing_get_port_mixer,
20075 msm_routing_put_port_mixer),
20076 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20077 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20078 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20079 msm_routing_get_port_mixer,
20080 msm_routing_put_port_mixer),
20081 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20082 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20083 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20084 msm_routing_get_port_mixer,
20085 msm_routing_put_port_mixer),
20086 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20087 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20088 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20089 msm_routing_get_port_mixer,
20090 msm_routing_put_port_mixer),
20091 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20092 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20093 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20094 msm_routing_get_port_mixer,
20095 msm_routing_put_port_mixer),
20096 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20097 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20098 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20099 msm_routing_get_port_mixer,
20100 msm_routing_put_port_mixer),
20101 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20102 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20103 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20104 msm_routing_get_port_mixer,
20105 msm_routing_put_port_mixer),
20106 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20107 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20108 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20109 msm_routing_get_port_mixer,
20110 msm_routing_put_port_mixer),
20111 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20112 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20113 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20114 msm_routing_get_port_mixer,
20115 msm_routing_put_port_mixer),
20116 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20117 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20118 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20119 msm_routing_get_port_mixer,
20120 msm_routing_put_port_mixer),
20121 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20122 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20123 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20124 msm_routing_get_port_mixer,
20125 msm_routing_put_port_mixer),
20126 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20127 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20128 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20129 msm_routing_get_port_mixer,
20130 msm_routing_put_port_mixer),
20131 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20132 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20133 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20134 msm_routing_get_port_mixer,
20135 msm_routing_put_port_mixer),
20136 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20137 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20138 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20139 msm_routing_get_port_mixer,
20140 msm_routing_put_port_mixer),
20141 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20142 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20143 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20144 msm_routing_get_port_mixer,
20145 msm_routing_put_port_mixer),
20146 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20147 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20148 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20149 msm_routing_get_port_mixer,
20150 msm_routing_put_port_mixer),
20151 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20152 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20153 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20154 msm_routing_get_port_mixer,
20155 msm_routing_put_port_mixer),
20156 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20157 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20158 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20159 msm_routing_get_port_mixer,
20160 msm_routing_put_port_mixer),
20161 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20162 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20163 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20164 msm_routing_get_port_mixer,
20165 msm_routing_put_port_mixer),
20166};
20167
20168static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20169 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20170 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20171 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20172 msm_routing_get_port_mixer,
20173 msm_routing_put_port_mixer),
20174 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20175 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20176 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20177 msm_routing_get_port_mixer,
20178 msm_routing_put_port_mixer),
20179 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20180 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20181 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20182 msm_routing_get_port_mixer,
20183 msm_routing_put_port_mixer),
20184 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20185 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20186 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20187 msm_routing_get_port_mixer,
20188 msm_routing_put_port_mixer),
20189 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20190 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20191 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20192 msm_routing_get_port_mixer,
20193 msm_routing_put_port_mixer),
20194 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20195 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20196 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20197 msm_routing_get_port_mixer,
20198 msm_routing_put_port_mixer),
20199 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20200 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20201 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20202 msm_routing_get_port_mixer,
20203 msm_routing_put_port_mixer),
20204 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20205 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20206 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20207 msm_routing_get_port_mixer,
20208 msm_routing_put_port_mixer),
20209 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20210 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20211 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20212 msm_routing_get_port_mixer,
20213 msm_routing_put_port_mixer),
20214 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20215 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20216 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20217 msm_routing_get_port_mixer,
20218 msm_routing_put_port_mixer),
20219 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20220 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20221 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20222 msm_routing_get_port_mixer,
20223 msm_routing_put_port_mixer),
20224 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20225 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20226 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20227 msm_routing_get_port_mixer,
20228 msm_routing_put_port_mixer),
20229 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20230 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20231 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20232 msm_routing_get_port_mixer,
20233 msm_routing_put_port_mixer),
20234 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20235 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20236 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20237 msm_routing_get_port_mixer,
20238 msm_routing_put_port_mixer),
20239 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20240 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20241 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20242 msm_routing_get_port_mixer,
20243 msm_routing_put_port_mixer),
20244 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20245 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20246 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20247 msm_routing_get_port_mixer,
20248 msm_routing_put_port_mixer),
20249 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20250 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20251 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20252 msm_routing_get_port_mixer,
20253 msm_routing_put_port_mixer),
20254 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20255 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20256 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20257 msm_routing_get_port_mixer,
20258 msm_routing_put_port_mixer),
20259 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20260 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20261 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20262 msm_routing_get_port_mixer,
20263 msm_routing_put_port_mixer),
20264 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20265 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20266 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20267 msm_routing_get_port_mixer,
20268 msm_routing_put_port_mixer),
20269 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20270 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20271 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20272 msm_routing_get_port_mixer,
20273 msm_routing_put_port_mixer),
20274 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20275 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20276 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20277 msm_routing_get_port_mixer,
20278 msm_routing_put_port_mixer),
20279 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20280 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20281 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20282 msm_routing_get_port_mixer,
20283 msm_routing_put_port_mixer),
20284 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20285 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20286 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20287 msm_routing_get_port_mixer,
20288 msm_routing_put_port_mixer),
20289};
20290
20291static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20292 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20293 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20294 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20295 msm_routing_get_port_mixer,
20296 msm_routing_put_port_mixer),
20297 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20298 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20299 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20300 msm_routing_get_port_mixer,
20301 msm_routing_put_port_mixer),
20302 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20303 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20304 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20305 msm_routing_get_port_mixer,
20306 msm_routing_put_port_mixer),
20307 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20308 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20309 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20310 msm_routing_get_port_mixer,
20311 msm_routing_put_port_mixer),
20312 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20313 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20314 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20315 msm_routing_get_port_mixer,
20316 msm_routing_put_port_mixer),
20317 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20318 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20319 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20320 msm_routing_get_port_mixer,
20321 msm_routing_put_port_mixer),
20322 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20323 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20324 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20325 msm_routing_get_port_mixer,
20326 msm_routing_put_port_mixer),
20327 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20328 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20329 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20330 msm_routing_get_port_mixer,
20331 msm_routing_put_port_mixer),
20332 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20333 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20334 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20335 msm_routing_get_port_mixer,
20336 msm_routing_put_port_mixer),
20337 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20338 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20339 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20340 msm_routing_get_port_mixer,
20341 msm_routing_put_port_mixer),
20342 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20343 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20344 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20345 msm_routing_get_port_mixer,
20346 msm_routing_put_port_mixer),
20347 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20348 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20349 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20350 msm_routing_get_port_mixer,
20351 msm_routing_put_port_mixer),
20352 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20353 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20354 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20355 msm_routing_get_port_mixer,
20356 msm_routing_put_port_mixer),
20357 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20358 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20359 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20360 msm_routing_get_port_mixer,
20361 msm_routing_put_port_mixer),
20362 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20363 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20364 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20365 msm_routing_get_port_mixer,
20366 msm_routing_put_port_mixer),
20367 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20368 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20369 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20370 msm_routing_get_port_mixer,
20371 msm_routing_put_port_mixer),
20372 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20373 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20374 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20375 msm_routing_get_port_mixer,
20376 msm_routing_put_port_mixer),
20377 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20378 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20379 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20380 msm_routing_get_port_mixer,
20381 msm_routing_put_port_mixer),
20382 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20383 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20384 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20385 msm_routing_get_port_mixer,
20386 msm_routing_put_port_mixer),
20387 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20388 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20389 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20390 msm_routing_get_port_mixer,
20391 msm_routing_put_port_mixer),
20392 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20393 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20394 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20395 msm_routing_get_port_mixer,
20396 msm_routing_put_port_mixer),
20397 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20398 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20399 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20400 msm_routing_get_port_mixer,
20401 msm_routing_put_port_mixer),
20402 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20403 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20404 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20405 msm_routing_get_port_mixer,
20406 msm_routing_put_port_mixer),
20407 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20408 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20409 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20410 msm_routing_get_port_mixer,
20411 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020412};
20413
Han Lu7b6c5882019-06-09 16:03:21 +080020414static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070020415 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
20416 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20417 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
20418 msm_routing_get_port_mixer,
20419 msm_routing_put_port_mixer),
20420 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20421 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20422 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20423 msm_routing_get_port_mixer,
20424 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080020425 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20426 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20427 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20428 msm_routing_get_port_mixer,
20429 msm_routing_put_port_mixer),
20430};
20431
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020432static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020433 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20434 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020435 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020437 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20438 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020439 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020441 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20442 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020443 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020445 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20446 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020447 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020449 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20450 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020451 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20452 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020453 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20454 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
20455 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020457 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20458 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020459 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020461 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20462 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020463 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20464 msm_routing_put_port_mixer),
20465};
20466
20467static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020468 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20469 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020470 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020472 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20473 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020474 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020476 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20477 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020478 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020480 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20481 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020482 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020484 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20485 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020486 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20487 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020488 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20489 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
20490 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020492 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20493 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020494 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020496 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20497 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020498 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
20499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020500 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20501 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020502 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020504 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20505 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080020506 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
20507 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020508};
20509
20510static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020511 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20512 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020513 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20514 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020515 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20516 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020517 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20518 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020519 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20520 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020521 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20522 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020523 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20524 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020525 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20526 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020527 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20528 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020529 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20530 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020531 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20532 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020533 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20534 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020535 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20536 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020537 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20538 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020539 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20540 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020541 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20542 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020543 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20544 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20545 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20546 msm_routing_put_listen_mixer),
20547 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20548 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20549 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20550 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020551 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20552 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20553 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20554 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020555 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20556 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20557 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20558 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020559 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20560 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20561 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20562 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020563};
20564
20565static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020566 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20567 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020568 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20569 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020570 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
20571 SND_SOC_NOPM,
20572 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020573 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20574 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020575 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20576 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020577 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20578 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020579 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20580 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020581 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20582 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020583 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20584 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020585 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20586 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020587 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20588 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020589 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20590 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020591 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20592 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020593 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20594 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020595 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20596 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020597 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20598 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020599 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20600 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20601 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20602 msm_routing_put_listen_mixer),
20603 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20604 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20605 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20606 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020607 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20608 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20609 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20610 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020611 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20612 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20613 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20614 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020615 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20616 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20617 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20618 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020619};
20620
20621static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020622 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20623 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020624 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20625 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020626 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20627 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020628 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20629 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020630 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20631 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020632 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20633 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020634 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20635 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020636 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20637 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020638 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20639 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020640 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20641 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020642 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20643 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020644 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20645 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020646 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20647 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020648 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20649 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020650 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20651 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020652 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20653 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020654 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20655 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20656 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20657 msm_routing_put_listen_mixer),
20658 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20659 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20660 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20661 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020662 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20663 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20664 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20665 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020666 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20667 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20668 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20669 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020670 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20671 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20672 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20673 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020674};
20675
20676static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020677 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20678 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020679 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20680 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020681 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20682 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020683 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20684 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020685 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20686 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020687 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20688 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020689 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20690 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020691 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20692 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020693 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20694 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020695 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20696 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020697 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20698 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020699 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20700 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020701 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20702 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020703 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20704 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020705 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20706 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020707 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20708 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020709 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20710 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20711 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20712 msm_routing_put_listen_mixer),
20713 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20714 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20715 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20716 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020717 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20718 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20719 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20720 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020721 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20722 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20723 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20724 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020725 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20726 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20727 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20728 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020729};
20730
20731static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020732 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20733 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020734 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20735 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020736 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20737 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020738 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20739 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020740 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20741 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020742 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20743 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020744 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20745 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020746 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20747 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020748 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20749 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020750 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20751 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020752 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20753 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020754 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20755 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020756 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20757 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020758 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20759 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020760 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20761 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020762 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20763 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020764 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20765 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20766 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20767 msm_routing_put_listen_mixer),
20768 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20769 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20770 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20771 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020772 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20773 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20774 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20775 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020776 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20777 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20778 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20779 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020780 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20781 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20782 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20783 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020784};
20785
20786static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020787 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20788 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020789 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20790 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020791 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20792 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020793 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20794 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020795 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20796 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020797 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20798 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020799 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20800 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020801 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20802 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020803 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20804 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020805 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20806 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020807 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20808 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020809 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20810 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020811 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20812 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020813 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20814 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020815 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20816 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020817 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20818 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020819 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20820 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20821 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20822 msm_routing_put_listen_mixer),
20823 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20824 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20825 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20826 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020827 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20828 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20829 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20830 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020831 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20832 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20833 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20834 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020835 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20836 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20837 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
20838 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020839};
20840
20841static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020842 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20843 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020844 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20845 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020846 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20847 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020848 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20849 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020850 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20851 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020852 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20853 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020854 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20855 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020856 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20857 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020858 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20859 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020860 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20861 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020862 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20863 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020864 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20865 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020866 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20867 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020868 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20869 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020870 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20871 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020872 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20873 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020874 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20875 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20876 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20877 msm_routing_put_listen_mixer),
20878 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20879 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20880 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20881 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020882 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20883 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20884 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20885 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020886 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20887 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20888 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20889 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020890 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20891 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20892 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
20893 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020894};
20895
20896static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020897 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20898 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020899 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20900 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020901 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20902 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020903 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20904 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020905 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20906 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020907 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20908 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020909 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20910 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020911 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20912 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020913 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20914 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020915 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20916 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020917 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20918 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020919 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20920 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020921 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20922 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020923 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20924 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020925 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20926 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020927 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20928 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020929 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20930 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20931 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20932 msm_routing_put_listen_mixer),
20933 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20934 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20935 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20936 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020937 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20938 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20939 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20940 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020941 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20942 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20943 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20944 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020945 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20946 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20947 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
20948 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020949};
20950
20951static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
20952 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20953 0, 1, 0, msm_routing_get_switch_mixer,
20954 msm_routing_put_switch_mixer);
20955
20956static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
20957 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20958 0, 1, 0, msm_routing_get_switch_mixer,
20959 msm_routing_put_switch_mixer);
20960
20961static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
20962 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20963 0, 1, 0, msm_routing_get_switch_mixer,
20964 msm_routing_put_switch_mixer);
20965
20966static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
20967 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20968 0, 1, 0, msm_routing_get_switch_mixer,
20969 msm_routing_put_switch_mixer);
20970
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053020971static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
20972 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20973 0, 1, 0, msm_routing_get_switch_mixer,
20974 msm_routing_put_switch_mixer);
20975
20976static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053020977 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20978 0, 1, 0, msm_routing_get_switch_mixer,
20979 msm_routing_put_switch_mixer);
20980
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020981static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
20982 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20983 0, 1, 0, msm_routing_get_switch_mixer,
20984 msm_routing_put_switch_mixer);
20985
20986static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
20987 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20988 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
20989 msm_routing_put_fm_pcmrx_switch_mixer);
20990
20991static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
20992 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20993 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
20994 msm_routing_put_int0_mi2s_switch_mixer);
20995
20996static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
20997 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
20998 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
20999 msm_routing_put_int4_mi2s_switch_mixer);
21000
21001static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21002 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21003 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21004 msm_routing_put_pri_mi2s_switch_mixer);
21005
21006static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21007 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21008 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21009 msm_routing_put_sec_mi2s_switch_mixer);
21010
21011static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21012 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21013 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21014 msm_routing_put_tert_mi2s_switch_mixer);
21015
21016static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21017 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21018 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21019 msm_routing_put_quat_mi2s_switch_mixer);
21020
Rohit Kumara5077932017-09-10 22:05:05 +053021021static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21022 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21023 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21024 msm_routing_put_quin_mi2s_switch_mixer);
21025
Karthikeyan Manic3700752019-03-11 18:33:53 -070021026static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21027 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21028 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21029 msm_routing_put_sen_mi2s_switch_mixer);
21030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021031static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
21032 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21033 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21034 msm_routing_put_hfp_switch_mixer);
21035
21036static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
21037 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21038 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21039 msm_routing_put_hfp_switch_mixer);
21040
21041static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21042 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21043 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21044 msm_routing_put_hfp_switch_mixer);
21045
21046static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21047 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21048 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21049 msm_routing_put_hfp_switch_mixer);
21050
21051static const struct snd_kcontrol_new usb_switch_mixer_controls =
21052 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21053 0, 1, 0, msm_routing_get_usb_switch_mixer,
21054 msm_routing_put_usb_switch_mixer);
21055
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021056static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21057 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21058 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21059 msm_routing_a2dp_switch_mixer_put);
21060
Zhou Songcaa541d2019-02-19 18:37:47 +080021061static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21062 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21063 0, 1, 0, msm_routing_sco_switch_mixer_get,
21064 msm_routing_sco_switch_mixer_put);
21065
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021066static const struct soc_enum lsm_port_enum =
21067 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21068
21069static const char * const lsm_func_text[] = {
21070 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21071};
21072static const struct soc_enum lsm_func_enum =
21073 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21074
21075static const struct snd_kcontrol_new lsm_controls[] = {
21076 /* kcontrol of lsm_function */
21077 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21078 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21079 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21080 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21081 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21082 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21083 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21084 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21085 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21086 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21087 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21088 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21089 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21090 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21091 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21092 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21093 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21094 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021095 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21096 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021097 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21098 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021099 /* kcontrol of lsm_port */
21100 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21101 msm_routing_lsm_port_get,
21102 msm_routing_lsm_port_put),
21103 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21104 msm_routing_lsm_port_get,
21105 msm_routing_lsm_port_put),
21106 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21107 msm_routing_lsm_port_get,
21108 msm_routing_lsm_port_put),
21109 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21110 msm_routing_lsm_port_get,
21111 msm_routing_lsm_port_put),
21112 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21113 msm_routing_lsm_port_get,
21114 msm_routing_lsm_port_put),
21115 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21116 msm_routing_lsm_port_get,
21117 msm_routing_lsm_port_put),
21118 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21119 msm_routing_lsm_port_get,
21120 msm_routing_lsm_port_put),
21121 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21122 msm_routing_lsm_port_get,
21123 msm_routing_lsm_port_put),
21124};
21125
21126static const char * const aanc_slim_0_rx_text[] = {
21127 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21128 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21129};
21130
21131static const struct soc_enum aanc_slim_0_rx_enum =
21132 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21133 aanc_slim_0_rx_text);
21134
21135static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21136 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21137 msm_routing_slim_0_rx_aanc_mux_get,
21138 msm_routing_slim_0_rx_aanc_mux_put)
21139};
21140
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021141static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21142 struct snd_ctl_elem_value *ucontrol)
21143{
21144 ucontrol->value.integer.value[0] = aanc_level;
21145
21146 return 0;
21147}
21148
21149static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21150 struct snd_ctl_elem_value *ucontrol)
21151{
21152 int ret = 0;
21153
21154 mutex_lock(&routing_lock);
21155 aanc_level = ucontrol->value.integer.value[0];
21156 pr_debug("%s: value: %ld\n",
21157 __func__, ucontrol->value.integer.value[0]);
21158 ret = afe_set_aanc_noise_level(aanc_level);
21159 mutex_unlock(&routing_lock);
21160
21161 return ret;
21162}
21163
21164static const struct snd_kcontrol_new aanc_noise_level[] = {
21165 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21166 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21167};
21168
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021169static int msm_routing_get_stereo_to_custom_stereo_control(
21170 struct snd_kcontrol *kcontrol,
21171 struct snd_ctl_elem_value *ucontrol)
21172{
21173 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21174 return 0;
21175}
21176
21177static int msm_routing_put_stereo_to_custom_stereo_control(
21178 struct snd_kcontrol *kcontrol,
21179 struct snd_ctl_elem_value *ucontrol)
21180{
21181 int flag = 0, i = 0, rc = 0, idx = 0;
21182 int be_index = 0, port_id, topo_id;
21183 unsigned int session_id = 0;
21184 uint16_t op_FL_ip_FL_weight = 0;
21185 uint16_t op_FL_ip_FR_weight = 0;
21186 uint16_t op_FR_ip_FL_weight = 0;
21187 uint16_t op_FR_ip_FR_weight = 0;
21188
21189 flag = ucontrol->value.integer.value[0];
21190 pr_debug("%s E flag %d\n", __func__, flag);
21191
21192 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21193 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21194 __func__, is_custom_stereo_on, flag);
21195 return 0;
21196 }
21197 is_custom_stereo_on = flag ? true : false;
21198 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21199 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21200 port_id = msm_bedais[be_index].port_id;
21201 if (!msm_bedais[be_index].active)
21202 continue;
21203 if ((port_id != SLIMBUS_0_RX) &&
21204 (port_id != RT_PROXY_PORT_001_RX) &&
21205 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21206 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21207 continue;
21208
21209 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21210 MSM_FRONTEND_DAI_MM_SIZE) {
21211 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21212 LEGACY_PCM_MODE)
21213 goto skip_send_custom_stereo;
21214 session_id =
21215 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21216 if (is_custom_stereo_on) {
21217 op_FL_ip_FL_weight =
21218 Q14_GAIN_ZERO_POINT_FIVE;
21219 op_FL_ip_FR_weight =
21220 Q14_GAIN_ZERO_POINT_FIVE;
21221 op_FR_ip_FL_weight =
21222 Q14_GAIN_ZERO_POINT_FIVE;
21223 op_FR_ip_FR_weight =
21224 Q14_GAIN_ZERO_POINT_FIVE;
21225 } else {
21226 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21227 op_FL_ip_FR_weight = 0;
21228 op_FR_ip_FL_weight = 0;
21229 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21230 }
21231 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21232 unsigned long copp =
21233 session_copp_map[i]
21234 [SESSION_TYPE_RX][be_index];
21235 if (!test_bit(idx, &copp))
21236 goto skip_send_custom_stereo;
21237 topo_id = adm_get_topology_for_port_copp_idx(
21238 msm_bedais[be_index].port_id, idx);
21239 if (topo_id < 0)
21240 pr_debug("%s:Err:custom stereo topo %d",
21241 __func__, topo_id);
21242 pr_debug("idx %d\n", idx);
21243 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21244 rc = msm_ds2_dap_set_custom_stereo_onoff
21245 (msm_bedais[be_index].port_id,
21246 idx, is_custom_stereo_on);
21247 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21248 rc = dolby_dap_set_custom_stereo_onoff(
21249 msm_bedais[be_index].port_id,
21250 idx, is_custom_stereo_on);
21251 else
21252 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21253 (msm_bedais[be_index].port_id,
21254 idx, session_id,
21255 op_FL_ip_FL_weight,
21256 op_FL_ip_FR_weight,
21257 op_FR_ip_FL_weight,
21258 op_FR_ip_FR_weight);
21259 if (rc < 0)
21260skip_send_custom_stereo:
21261 pr_err("%s: err setting custom stereo\n",
21262 __func__);
21263 }
21264
21265 }
21266 }
21267 return 0;
21268}
21269
21270static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21271 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21272 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21273 msm_routing_put_stereo_to_custom_stereo_control),
21274};
21275
21276static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21277 struct snd_ctl_elem_value *ucontrol)
21278{
21279 return 0;
21280}
21281
21282static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21283 struct snd_ctl_elem_value *ucontrol)
21284{
21285 int i = 0, j;
21286 int num_app_types = ucontrol->value.integer.value[i++];
21287
21288 pr_debug("%s\n", __func__);
21289
21290 memset(app_type_cfg, 0, MAX_APP_TYPES*
21291 sizeof(struct msm_pcm_routing_app_type_data));
21292 if (num_app_types > MAX_APP_TYPES) {
21293 pr_err("%s: number of app types exceed the max supported\n",
21294 __func__);
21295 return -EINVAL;
21296 }
21297 for (j = 0; j < num_app_types; j++) {
21298 app_type_cfg[j].app_type =
21299 ucontrol->value.integer.value[i++];
21300 app_type_cfg[j].sample_rate =
21301 ucontrol->value.integer.value[i++];
21302 app_type_cfg[j].bit_width =
21303 ucontrol->value.integer.value[i++];
21304 }
21305
21306 return 0;
21307}
21308
21309static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
21310 struct snd_ctl_elem_value *ucontrol)
21311{
21312 int j, fe_id, be_id, port_type;
21313 int ret = 0;
21314 unsigned long copp;
21315 struct msm_pcm_routing_bdai_data *bedai;
21316 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21317 SESSION_TYPE_RX;
21318 int app_type = ucontrol->value.integer.value[1];
21319 int gain = (ucontrol->value.integer.value[2] +
21320 ucontrol->value.integer.value[3])/2;
21321
21322 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21323 MSM_AFE_PORT_TYPE_TX;
21324
21325 mutex_lock(&routing_lock);
21326 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21327 if (is_be_dai_extproc(be_id))
21328 continue;
21329
21330 bedai = &msm_bedais[be_id];
21331 if (afe_get_port_type(bedai->port_id) != port_type)
21332 continue;
21333
21334 if (!bedai->active)
21335 continue;
21336
21337 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21338 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21339 continue;
21340
21341 if (app_type !=
21342 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21343 continue;
21344
21345 copp = session_copp_map[fe_id][dir][be_id];
21346 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
21347 if (!test_bit(j, &copp))
21348 continue;
21349 ret |= adm_set_volume(bedai->port_id, j, gain);
21350 }
21351 }
21352 }
21353 mutex_unlock(&routing_lock);
21354 return ret ? -EINVAL : 0;
21355}
21356
21357static const struct snd_kcontrol_new app_type_cfg_controls[] = {
21358 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080021359 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021360 msm_routing_put_app_type_cfg_control),
21361 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
21362 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
21363};
21364
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021365static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
21366 struct snd_ctl_elem_value *ucontrol)
21367{
21368 int copp_idx, fe_id, be_id, port_type;
21369 int ret = 0;
21370 unsigned long copp;
21371 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021372 u8 *packed_params = NULL;
21373 struct param_hdr_v3 param_hdr;
21374 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
21375 sizeof(uint32_t));
21376
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021377 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21378 SESSION_TYPE_RX;
21379 int app_type = ucontrol->value.integer.value[1];
21380 int module_id = ucontrol->value.integer.value[2];
21381 int instance_id = ucontrol->value.integer.value[3];
21382 int param_id = ucontrol->value.integer.value[4];
21383 int param_value = ucontrol->value.integer.value[5];
21384
21385 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21386 MSM_AFE_PORT_TYPE_TX;
21387 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
21388 __func__, app_type, module_id,
21389 instance_id, param_id, param_value);
21390
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021391 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
21392 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021393 return -ENOMEM;
21394
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021395 memset(&param_hdr, 0, sizeof(param_hdr));
21396 param_hdr.module_id = module_id;
21397 param_hdr.instance_id = instance_id;
21398 param_hdr.param_id = param_id;
21399 param_hdr.param_size = sizeof(uint32_t);
21400
21401 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021402
21403 mutex_lock(&routing_lock);
21404 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21405 if (is_be_dai_extproc(be_id))
21406 continue;
21407
21408 bedai = &msm_bedais[be_id];
21409 if (afe_get_port_type(bedai->port_id) != port_type)
21410 continue;
21411
21412 if (!bedai->active)
21413 continue;
21414
21415 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21416 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21417 continue;
21418
21419 if (app_type !=
21420 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21421 continue;
21422
21423 copp = session_copp_map[fe_id][dir][be_id];
21424 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
21425 copp_idx++) {
21426 if (!test_bit(copp_idx, &copp))
21427 continue;
21428
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021429 ret = q6common_pack_pp_params(packed_params,
21430 &param_hdr,
21431 (u8 *) &param_value,
21432 &packed_param_size);
21433 if (ret) {
21434 pr_err("%s: Failed to pack params, error %d\n",
21435 __func__, ret);
21436 goto done;
21437 }
21438
21439 ret = adm_set_pp_params(bedai->port_id,
21440 copp_idx, NULL,
21441 packed_params,
21442 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021443 if (ret) {
21444 pr_err("%s: Setting param failed with err=%d\n",
21445 __func__, ret);
21446 ret = -EINVAL;
21447 goto done;
21448 }
21449 }
21450 }
21451 }
21452done:
21453 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021454 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021455 return ret;
21456}
21457
21458static const struct snd_kcontrol_new module_cfg_controls[] = {
21459 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
21460 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
21461};
21462
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021463static int msm_routing_get_lsm_app_type_cfg_control(
21464 struct snd_kcontrol *kcontrol,
21465 struct snd_ctl_elem_value *ucontrol)
21466{
Meng Wangadbca4f2018-10-29 14:30:13 +080021467 int shift = ((struct soc_multi_mixer_control *)
21468 kcontrol->private_value)->shift;
21469 int i = 0, j = 0;
21470
21471 ucontrol->value.integer.value[i] = num_app_cfg_types;
21472
21473 for (j = 0; j < num_app_cfg_types; ++j) {
21474 ucontrol->value.integer.value[++i] =
21475 lsm_app_type_cfg[j].app_type;
21476 ucontrol->value.integer.value[++i] =
21477 lsm_app_type_cfg[j].sample_rate;
21478 ucontrol->value.integer.value[++i] =
21479 lsm_app_type_cfg[j].bit_width;
21480 if (shift == 1)
21481 ucontrol->value.integer.value[++i] =
21482 lsm_app_type_cfg[j].num_out_channels;
21483 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021484 return 0;
21485}
21486
21487static int msm_routing_put_lsm_app_type_cfg_control(
21488 struct snd_kcontrol *kcontrol,
21489 struct snd_ctl_elem_value *ucontrol)
21490{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021491 int shift = ((struct soc_multi_mixer_control *)
21492 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021493 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021494
Meng Wangadbca4f2018-10-29 14:30:13 +080021495 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021496 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021497 sizeof(struct msm_pcm_routing_app_type_data));
21498
Meng Wangadbca4f2018-10-29 14:30:13 +080021499 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021500 pr_err("%s: number of app types exceed the max supported\n",
21501 __func__);
21502 return -EINVAL;
21503 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021504
Meng Wangadbca4f2018-10-29 14:30:13 +080021505 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021506 lsm_app_type_cfg[j].app_type =
21507 ucontrol->value.integer.value[i++];
21508 lsm_app_type_cfg[j].sample_rate =
21509 ucontrol->value.integer.value[i++];
21510 lsm_app_type_cfg[j].bit_width =
21511 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021512 /* Shift of 1 indicates this is V2 mixer control */
21513 if (shift == 1)
21514 lsm_app_type_cfg[j].num_out_channels =
21515 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021516 }
21517
21518 return 0;
21519}
21520
21521static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
21522 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
21523 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21524 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021525 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
21526 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21527 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021528};
21529
21530static int msm_routing_get_use_ds1_or_ds2_control(
21531 struct snd_kcontrol *kcontrol,
21532 struct snd_ctl_elem_value *ucontrol)
21533{
21534 ucontrol->value.integer.value[0] = is_ds2_on;
21535 return 0;
21536}
21537
21538static int msm_routing_put_use_ds1_or_ds2_control(
21539 struct snd_kcontrol *kcontrol,
21540 struct snd_ctl_elem_value *ucontrol)
21541{
21542 is_ds2_on = ucontrol->value.integer.value[0];
21543 return 0;
21544}
21545
21546static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
21547 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
21548 1, 0, msm_routing_get_use_ds1_or_ds2_control,
21549 msm_routing_put_use_ds1_or_ds2_control),
21550};
21551
21552int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
21553 struct snd_ctl_elem_value *ucontrol) {
21554 int rc = 0;
21555 int be_idx = 0;
21556 char *param_value;
21557 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021558 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
21559 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021560
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021561 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021562 if (!param_value)
21563 return -ENOMEM;
21564
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021565 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021566 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
21567 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
21568 break;
21569 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021570 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
21571 param_hdr.instance_id = INSTANCE_ID_0;
21572 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
21573 param_hdr.param_size = param_size;
21574 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
21575 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021576 if (rc) {
21577 pr_err("%s: get parameters failed:%d\n", __func__, rc);
21578 kfree(param_value);
21579 return -EINVAL;
21580 }
21581 update_param_value = (int *)param_value;
21582 ucontrol->value.integer.value[0] = update_param_value[0];
21583
21584 pr_debug("%s: FROM DSP value[0] 0x%x\n",
21585 __func__, update_param_value[0]);
21586 }
21587 kfree(param_value);
21588 return 0;
21589}
21590
21591static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
21592 struct snd_ctl_elem_value *ucontrol)
21593{
21594 voc_session_id = ucontrol->value.integer.value[0];
21595
21596 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
21597
21598 return 0;
21599}
21600
21601static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
21602 struct snd_ctl_elem_value *ucontrol)
21603{
21604 ucontrol->value.integer.value[0] = voc_session_id;
21605
21606 return 0;
21607}
21608
21609static struct snd_kcontrol_new msm_voc_session_controls[] = {
21610 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
21611 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
21612 msm_voc_session_id_put),
21613};
21614
21615static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
21616 struct snd_ctl_elem_info *uinfo)
21617{
21618 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21619 uinfo->count = sizeof(struct sound_focus_param);
21620
21621 return 0;
21622}
21623
21624static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
21625 struct snd_ctl_elem_value *ucontrol)
21626{
21627 int ret = 0;
21628 struct sound_focus_param soundFocusData;
21629
21630 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21631 sizeof(struct sound_focus_param));
21632 ret = voc_set_sound_focus(soundFocusData);
21633 if (ret) {
21634 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21635 __func__, ret);
21636
21637 ret = -EINVAL;
21638 }
21639
21640 return ret;
21641}
21642
21643static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
21644 struct snd_ctl_elem_value *ucontrol)
21645{
21646 int ret = 0;
21647 struct sound_focus_param soundFocusData;
21648
21649 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
21650
21651 ret = voc_get_sound_focus(&soundFocusData);
21652 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021653 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021654 __func__, ret);
21655
21656 ret = -EINVAL;
21657 goto done;
21658 }
21659 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21660 sizeof(struct sound_focus_param));
21661
21662done:
21663 return ret;
21664}
21665
21666static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
21667 struct snd_ctl_elem_info *uinfo)
21668{
21669 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21670 uinfo->count = sizeof(struct source_tracking_param);
21671
21672 return 0;
21673}
21674
21675static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
21676 struct snd_ctl_elem_value *ucontrol)
21677{
Meng Wang92edfde2018-04-24 12:18:37 +080021678 int ret = 0;
21679 struct source_tracking_param sourceTrackingData;
21680
21681 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
21682
21683 ret = voc_get_source_tracking(&sourceTrackingData);
21684 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021685 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080021686 __func__, ret);
21687
21688 ret = -EINVAL;
21689 goto done;
21690 }
21691 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21692 sizeof(struct source_tracking_param));
21693
21694done:
21695 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021696}
21697
21698static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
21699 int *copp_idx)
21700{
21701 int i, idx, be_idx;
21702 int ret = 0;
21703 unsigned long copp;
21704
21705 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
21706
21707 ret = q6audio_validate_port(port_id);
21708 if (ret < 0) {
21709 pr_err("%s: port validation failed id 0x%x ret %d\n",
21710 __func__, port_id, ret);
21711
21712 ret = -EINVAL;
21713 goto done;
21714 }
21715
21716 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
21717 if (msm_bedais[be_idx].port_id == port_id)
21718 break;
21719 }
21720 if (be_idx >= MSM_BACKEND_DAI_MAX) {
21721 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
21722
21723 ret = -EINVAL;
21724 goto done;
21725 }
21726
21727 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021728 MSM_FRONTEND_DAI_MAX) {
21729 if (!(is_mm_lsm_fe_id(i) &&
21730 route_check_fe_id_adm_support(i)))
21731 continue;
21732
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021733 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21734 copp = session_copp_map[i]
21735 [session_type][be_idx];
21736 if (test_bit(idx, &copp))
21737 break;
21738 }
21739 if (idx >= MAX_COPPS_PER_PORT)
21740 continue;
21741 else
21742 break;
21743 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021744 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021745 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021746
21747 ret = -EINVAL;
21748 goto done;
21749 }
21750 *copp_idx = idx;
21751 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
21752
21753done:
21754 return ret;
21755}
21756
21757static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
21758 const char *prefix, int *port_id)
21759{
21760 int ret = 0;
21761
21762 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
21763
21764 /*
21765 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
21766 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
21767 * and compare the string with the backend name to derive the port id.
21768 */
21769 if (!strcmp(kcontrol->id.name + strlen(prefix),
21770 "SLIMBUS_0")) {
21771 *port_id = SLIMBUS_0_TX;
21772 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21773 "TERT_MI2S")) {
21774 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
21775 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21776 "INT3_MI2S")) {
21777 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053021778 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21779 "VA_CDC_DMA_TX_0")) {
21780 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053021781 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21782 "TX_CDC_DMA_TX_3")) {
21783 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021784 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21785 "QUIN_TDM_TX_0")) {
21786 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053021787 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
21788 "PRIMARY_TDM")) {
21789 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021790 } else {
21791 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
21792 __func__, kcontrol->id.name);
21793
21794 ret = -EINVAL;
21795 goto done;
21796 }
21797 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
21798 __func__, kcontrol->id.name, *port_id);
21799
21800done:
21801 return ret;
21802}
21803
21804static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
21805 struct snd_ctl_elem_value *ucontrol)
21806{
21807 int ret = 0;
21808 struct sound_focus_param soundFocusData;
21809 int port_id, copp_idx;
21810
21811 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21812 "Sound Focus Audio Tx ", &port_id);
21813 if (ret != 0) {
21814 pr_err("%s: Error in deriving port id, err=%d\n",
21815 __func__, ret);
21816
21817 ret = -EINVAL;
21818 goto done;
21819 }
21820
21821 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21822 &copp_idx);
21823 if (ret) {
21824 pr_err("%s: Could not get copp idx for port_id=%d\n",
21825 __func__, port_id);
21826
21827 ret = -EINVAL;
21828 goto done;
21829 }
21830
21831 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21832 sizeof(struct sound_focus_param));
21833
21834 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
21835 if (ret) {
21836 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21837 __func__, ret);
21838
21839 ret = -EINVAL;
21840 goto done;
21841 }
21842
21843done:
21844 return ret;
21845}
21846
21847static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
21848 struct snd_ctl_elem_value *ucontrol)
21849{
21850 int ret = 0;
21851 struct sound_focus_param soundFocusData;
21852 int port_id, copp_idx;
21853
21854 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21855 "Sound Focus Audio Tx ", &port_id);
21856 if (ret) {
21857 pr_err("%s: Error in deriving port id, err=%d\n",
21858 __func__, ret);
21859
21860 ret = -EINVAL;
21861 goto done;
21862 }
21863
21864 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21865 &copp_idx);
21866 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021867 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021868 __func__, port_id);
21869
21870 ret = -EINVAL;
21871 goto done;
21872 }
21873
21874 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
21875 if (ret) {
21876 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
21877 __func__, ret);
21878
21879 ret = -EINVAL;
21880 goto done;
21881 }
21882
21883 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21884 sizeof(struct sound_focus_param));
21885
21886done:
21887 return ret;
21888}
21889
21890static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
21891 struct snd_ctl_elem_value *ucontrol)
21892{
21893 int ret = 0;
21894 struct source_tracking_param sourceTrackingData;
21895 int port_id, copp_idx;
21896
21897 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21898 "Source Tracking Audio Tx ", &port_id);
21899 if (ret) {
21900 pr_err("%s: Error in deriving port id, err=%d\n",
21901 __func__, ret);
21902
21903 ret = -EINVAL;
21904 goto done;
21905 }
21906
21907 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21908 &copp_idx);
21909 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021910 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021911 __func__, port_id);
21912
21913 ret = -EINVAL;
21914 goto done;
21915 }
21916
21917 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
21918 if (ret) {
21919 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
21920 __func__, ret);
21921
21922 ret = -EINVAL;
21923 goto done;
21924 }
21925
21926 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21927 sizeof(struct source_tracking_param));
21928
21929done:
21930 return ret;
21931}
21932
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021933static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
21934 struct snd_ctl_elem_info *uinfo)
21935{
21936 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21937 uinfo->count = sizeof(struct doa_tracking_mon_param);
21938
21939 return 0;
21940}
21941
21942static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
21943 struct snd_ctl_elem_value *ucontrol)
21944{
21945 int ret = 0;
21946 struct doa_tracking_mon_param doa_tracking_data;
21947 int port_id, copp_idx;
21948
21949 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
21950 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
21951 "Doa Tracking Monitor Listen ", &port_id);
21952 if (ret) {
21953 pr_err("%s: Error in deriving port id, err=%d\n",
21954 __func__, ret);
21955 ret = -EINVAL;
21956 goto done;
21957 }
21958
21959 /*
21960 * If copp id exists for given port id, query adm to get doa data.
21961 * Else query afe for doa tracking params.
21962 * This is to support in cases where LSM directly connects to
21963 * AFE for FFNS.
21964 */
21965 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
21966 &copp_idx);
21967 if (!ret)
21968 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
21969 &doa_tracking_data);
21970 else
21971 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
21972
21973 if (ret) {
21974 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
21975 __func__, ret);
21976 ret = -EINVAL;
21977 goto done;
21978 }
21979
21980 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
21981 sizeof(struct doa_tracking_mon_param));
21982done:
21983 return ret;
21984}
21985
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021986static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
21987 {
21988 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
21989 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21990 .name = "Sound Focus Voice Tx SLIMBUS_0",
21991 .info = msm_sound_focus_info,
21992 .get = msm_voice_sound_focus_get,
21993 .put = msm_voice_sound_focus_put,
21994 },
21995 {
21996 .access = SNDRV_CTL_ELEM_ACCESS_READ,
21997 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
21998 .name = "Source Tracking Voice Tx SLIMBUS_0",
21999 .info = msm_source_tracking_info,
22000 .get = msm_voice_source_tracking_get,
22001 },
22002 {
22003 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22004 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22005 .name = "Sound Focus Audio Tx SLIMBUS_0",
22006 .info = msm_sound_focus_info,
22007 .get = msm_audio_sound_focus_get,
22008 .put = msm_audio_sound_focus_put,
22009 },
22010 {
22011 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22012 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22013 .name = "Source Tracking Audio Tx SLIMBUS_0",
22014 .info = msm_source_tracking_info,
22015 .get = msm_audio_source_tracking_get,
22016 },
22017 {
22018 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22019 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22020 .name = "Sound Focus Voice Tx TERT_MI2S",
22021 .info = msm_sound_focus_info,
22022 .get = msm_voice_sound_focus_get,
22023 .put = msm_voice_sound_focus_put,
22024 },
22025 {
22026 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22027 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22028 .name = "Source Tracking Voice Tx TERT_MI2S",
22029 .info = msm_source_tracking_info,
22030 .get = msm_voice_source_tracking_get,
22031 },
22032 {
22033 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22034 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22035 .name = "Sound Focus Audio Tx TERT_MI2S",
22036 .info = msm_sound_focus_info,
22037 .get = msm_audio_sound_focus_get,
22038 .put = msm_audio_sound_focus_put,
22039 },
22040 {
22041 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22042 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22043 .name = "Source Tracking Audio Tx TERT_MI2S",
22044 .info = msm_source_tracking_info,
22045 .get = msm_audio_source_tracking_get,
22046 },
22047 {
22048 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22049 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22050 .name = "Sound Focus Voice Tx INT3_MI2S",
22051 .info = msm_sound_focus_info,
22052 .get = msm_voice_sound_focus_get,
22053 .put = msm_voice_sound_focus_put,
22054 },
22055 {
22056 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22057 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22058 .name = "Source Tracking Voice Tx INT3_MI2S",
22059 .info = msm_source_tracking_info,
22060 .get = msm_voice_source_tracking_get,
22061 },
22062 {
22063 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22064 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22065 .name = "Sound Focus Audio Tx INT3_MI2S",
22066 .info = msm_sound_focus_info,
22067 .get = msm_audio_sound_focus_get,
22068 .put = msm_audio_sound_focus_put,
22069 },
22070 {
22071 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22072 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22073 .name = "Source Tracking Audio Tx INT3_MI2S",
22074 .info = msm_source_tracking_info,
22075 .get = msm_audio_source_tracking_get,
22076 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022077 {
22078 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22079 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22080 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22081 .info = msm_sound_focus_info,
22082 .get = msm_voice_sound_focus_get,
22083 .put = msm_voice_sound_focus_put,
22084 },
22085 {
22086 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22087 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22088 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22089 .info = msm_source_tracking_info,
22090 .get = msm_voice_source_tracking_get,
22091 },
22092 {
22093 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22094 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22095 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22096 .info = msm_sound_focus_info,
22097 .get = msm_audio_sound_focus_get,
22098 .put = msm_audio_sound_focus_put,
22099 },
22100 {
22101 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22102 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22103 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22104 .info = msm_source_tracking_info,
22105 .get = msm_audio_source_tracking_get,
22106 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022107 {
22108 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22109 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22110 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22111 .info = msm_sound_focus_info,
22112 .get = msm_voice_sound_focus_get,
22113 .put = msm_voice_sound_focus_put,
22114 },
22115 {
22116 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22117 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22118 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22119 .info = msm_source_tracking_info,
22120 .get = msm_voice_source_tracking_get,
22121 },
22122 {
22123 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22124 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22125 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22126 .info = msm_sound_focus_info,
22127 .get = msm_audio_sound_focus_get,
22128 .put = msm_audio_sound_focus_put,
22129 },
22130 {
22131 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22132 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22133 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22134 .info = msm_source_tracking_info,
22135 .get = msm_audio_source_tracking_get,
22136 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022137 {
22138 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22139 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22140 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22141 .info = msm_sound_focus_info,
22142 .get = msm_voice_sound_focus_get,
22143 .put = msm_voice_sound_focus_put,
22144 },
22145 {
22146 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22147 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22148 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22149 .info = msm_source_tracking_info,
22150 .get = msm_voice_source_tracking_get,
22151 },
22152 {
22153 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22154 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22155 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22156 .info = msm_sound_focus_info,
22157 .get = msm_audio_sound_focus_get,
22158 .put = msm_audio_sound_focus_put,
22159 },
22160 {
22161 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22162 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22163 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22164 .info = msm_source_tracking_info,
22165 .get = msm_audio_source_tracking_get,
22166 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022167 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022168 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22169 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22170 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22171 .info = msm_sound_focus_info,
22172 .get = msm_audio_sound_focus_get,
22173 .put = msm_audio_sound_focus_put,
22174 },
22175 {
22176 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22177 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22178 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22179 .info = msm_source_tracking_info,
22180 .get = msm_audio_source_tracking_get,
22181 },
22182 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022183 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22184 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22185 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22186 .info = msm_doa_tracking_mon_info,
22187 .get = msm_doa_tracking_mon_get,
22188 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022189};
22190
22191static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22192 struct snd_ctl_elem_value *ucontrol)
22193{
22194 int ret = 0;
22195 int item;
22196 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22197
22198 pr_debug("%s item is %d\n", __func__,
22199 ucontrol->value.enumerated.item[0]);
22200 mutex_lock(&routing_lock);
22201 item = ucontrol->value.enumerated.item[0];
22202 if (item < e->items) {
22203 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22204 __func__, e->shift_l, e->values[item]);
22205 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22206 e->values[item] < MSM_BACKEND_DAI_MAX)
22207 /* Enable feedback TX path */
22208 ret = afe_spk_prot_feed_back_cfg(
22209 msm_bedais[e->values[item]].port_id,
22210 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22211 else {
22212 pr_debug("%s values are out of range item %d\n",
22213 __func__, e->values[item]);
22214 /* Disable feedback TX path */
22215 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22216 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22217 else
22218 ret = -EINVAL;
22219 }
22220 } else {
22221 pr_err("%s item value is out of range item\n", __func__);
22222 ret = -EINVAL;
22223 }
22224 mutex_unlock(&routing_lock);
22225 return ret;
22226}
22227
22228static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22229 struct snd_ctl_elem_value *ucontrol)
22230{
22231 int ret = 0;
22232 int item;
22233 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22234
22235 pr_debug("%s item is %d\n", __func__,
22236 ucontrol->value.enumerated.item[0]);
22237 mutex_lock(&routing_lock);
22238 item = ucontrol->value.enumerated.item[0];
22239 if (item < e->items) {
22240 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22241 __func__, e->shift_l, e->values[item]);
22242 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22243 e->values[item] < MSM_BACKEND_DAI_MAX)
22244 /* Enable feedback TX path */
22245 ret = afe_spk_prot_feed_back_cfg(
22246 msm_bedais[e->values[item]].port_id,
22247 msm_bedais[e->shift_l].port_id,
22248 1, 1, 1);
22249 else {
22250 pr_debug("%s values are out of range item %d\n",
22251 __func__, e->values[item]);
22252 /* Disable feedback TX path */
22253 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22254 ret = afe_spk_prot_feed_back_cfg(0,
22255 0, 0, 0, 0);
22256 else
22257 ret = -EINVAL;
22258 }
22259 } else {
22260 pr_err("%s item value is out of range item\n", __func__);
22261 ret = -EINVAL;
22262 }
22263 mutex_unlock(&routing_lock);
22264 return ret;
22265}
22266
22267static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22268 struct snd_ctl_elem_value *ucontrol)
22269{
22270 pr_debug("%s\n", __func__);
22271 return 0;
22272}
22273
22274static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
22275 struct snd_ctl_elem_value *ucontrol)
22276{
22277 pr_debug("%s\n", __func__);
22278 ucontrol->value.enumerated.item[0] = 0;
22279 return 0;
22280}
22281
22282static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
22283 "ZERO", "SLIM4_TX"
22284};
22285
22286static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
22287 "ZERO", "SLIM4_TX"
22288};
22289
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022290static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
22291 "ZERO", "WSA_CDC_DMA_TX_0"
22292};
22293
22294static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
22295 "ZERO", "WSA_CDC_DMA_TX_0"
22296};
22297
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022298static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
22299 "ZERO", "SENARY_TX"
22300};
22301
22302static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
22303 "ZERO", "INT5_MI2S_TX"
22304};
22305
22306static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
22307 "ZERO", "INT5_MI2S_TX"
22308};
22309
Josh Kirschea69fed2018-12-11 16:15:08 -080022310static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022311 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22312};
22313
Josh Kirschea69fed2018-12-11 16:15:08 -080022314static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022315 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22316};
22317
Josh Kirschea69fed2018-12-11 16:15:08 -080022318static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022319 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22320};
22321
Josh Kirschea69fed2018-12-11 16:15:08 -080022322static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022323 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22324};
22325
22326
Josh Kirschea69fed2018-12-11 16:15:08 -080022327static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022328 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
22329};
22330
Josh Kirschea69fed2018-12-11 16:15:08 -080022331static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022332 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22333};
22334
Josh Kirschea69fed2018-12-11 16:15:08 -080022335static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022336 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22337};
22338
22339static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
22340 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22341 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
22342 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
22343
22344static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
22345 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22346 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
22347 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
22348
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022349static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
22350 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22351 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
22352 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
22353
22354static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
22355 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22356 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
22357 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
22358
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022359static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
22360 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
22361 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
22362 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
22363
22364static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
22365 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22366 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
22367 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
22368 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
22369
22370static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
22371 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22372 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
22373 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
22374 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
22375
22376static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
22377 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
22378 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22379 spkr_prot_put_vi_lch_port);
22380
22381static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
22382 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
22383 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22384 spkr_prot_put_vi_rch_port);
22385
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022386static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
22387 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
22388 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22389 spkr_prot_put_vi_lch_port);
22390
22391static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
22392 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
22393 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22394 spkr_prot_put_vi_rch_port);
22395
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022396static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
22397 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
22398 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
22399 spkr_prot_put_vi_lch_port);
22400
22401static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
22402 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
22403 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
22404 spkr_prot_put_vi_lch_port);
22405
22406static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
22407 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
22408 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
22409 spkr_prot_put_vi_rch_port);
22410
22411static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
22412 /* Frontend AIF */
22413 /* Widget name equals to Front-End DAI name<Need confirmation>,
22414 * Stream name must contains substring of front-end dai name
22415 */
22416 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
22417 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
22418 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
22419 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
22420 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
22421 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
22422 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
22423 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
22424 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
22425 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
22426 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
22427 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
22428 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
22429 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
22430 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
22431 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
22432 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022433 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022434 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022435 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022436 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
22437 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
22438 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
22439 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
22440 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
22441 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
22442 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
22443 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
22444 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022445 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022446 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022447 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
22448 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
22449 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
22450 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022451 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022452 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022453 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080022454 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
22455 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053022456 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022457 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
22458 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
22459 "VoiceMMode1 Playback", 0, 0, 0, 0),
22460 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
22461 "VoiceMMode1 Capture", 0, 0, 0, 0),
22462 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
22463 "VoiceMMode2 Playback", 0, 0, 0, 0),
22464 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
22465 "VoiceMMode2 Capture", 0, 0, 0, 0),
22466 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
22467 0, 0, 0, 0),
22468 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
22469 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022470 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
22471 0, 0, 0, 0),
22472 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
22473 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022474 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
22475 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022476 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
22477 0, 0, 0, 0),
22478 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
22479 0, 0, 0, 0),
22480 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
22481 0, 0, 0, 0),
22482 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
22483 0, 0, 0, 0),
22484 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
22485 0, 0, 0, 0),
22486 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
22487 0, 0, 0, 0),
22488 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
22489 0, 0, 0, 0),
22490 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
22491 0, 0, 0, 0),
22492 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
22493 0, 0, 0, 0),
22494 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
22495 0, 0, 0, 0),
22496 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
22497 0, 0, 0, 0),
22498 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
22499 0, 0, 0, 0),
22500 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
22501 0, 0, 0, 0),
22502 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
22503 0, 0, 0, 0),
22504 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
22505 0, 0, 0, 0),
22506 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
22507 0, 0, 0, 0),
22508 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
22509 0, 0, 0, 0),
22510 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
22511 0, 0, 0, 0),
22512 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
22513 0, 0, 0, 0),
22514 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
22515 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
22516 0, 0, 0, 0),
22517 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
22518 "INT0 MI2S_RX Hostless Playback",
22519 0, 0, 0, 0),
22520 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
22521 "INT4 MI2S_RX Hostless Playback",
22522 0, 0, 0, 0),
22523 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
22524 "Primary MI2S_RX Hostless Playback",
22525 0, 0, 0, 0),
22526 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
22527 "Secondary MI2S_RX Hostless Playback",
22528 0, 0, 0, 0),
22529 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
22530 "Tertiary MI2S_RX Hostless Playback",
22531 0, 0, 0, 0),
22532 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
22533 "Quaternary MI2S_RX Hostless Playback",
22534 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022535 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
22536 "Quinary MI2S_RX Hostless Playback",
22537 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022538 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
22539 "Senary MI2S_RX Hostless Playback",
22540 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022541
22542 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
22543 0, 0, 0, 0),
22544 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
22545 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022546 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
22547 0, 0, 0, 0),
22548 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
22549 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022550 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
22551 0, 0, 0, 0),
22552 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
22553 "INT3 MI2S_TX Hostless Capture",
22554 0, 0, 0, 0),
22555 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
22556 "Tertiary MI2S_TX Hostless Capture",
22557 0, 0, 0, 0),
22558 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
22559 "Secondary MI2S_TX Hostless Capture",
22560 0, 0, 0, 0),
22561 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
22562 "Primary MI2S_TX Hostless Capture",
22563 0, 0, 0, 0),
22564 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
22565 0, 0, 0, 0),
22566 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
22567 0, 0, 0, 0),
22568 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
22569 "Quaternary MI2S_TX Hostless Capture",
22570 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022571 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
22572 "Quinary MI2S_TX Hostless Capture",
22573 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022574 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
22575 "Senary MI2S_TX Hostless Capture",
22576 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022577
22578 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
22579 "Primary TDM0 Hostless Playback",
22580 0, 0, 0, 0),
22581 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
22582 "Primary TDM0 Hostless Capture",
22583 0, 0, 0, 0),
22584 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
22585 "Primary TDM1 Hostless Playback",
22586 0, 0, 0, 0),
22587 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
22588 "Primary TDM1 Hostless Capture",
22589 0, 0, 0, 0),
22590 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
22591 "Primary TDM2 Hostless Playback",
22592 0, 0, 0, 0),
22593 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
22594 "Primary TDM2 Hostless Capture",
22595 0, 0, 0, 0),
22596 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
22597 "Primary TDM3 Hostless Playback",
22598 0, 0, 0, 0),
22599 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
22600 "Primary TDM3 Hostless Capture",
22601 0, 0, 0, 0),
22602 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
22603 "Primary TDM4 Hostless Playback",
22604 0, 0, 0, 0),
22605 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
22606 "Primary TDM4 Hostless Capture",
22607 0, 0, 0, 0),
22608 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
22609 "Primary TDM5 Hostless Playback",
22610 0, 0, 0, 0),
22611 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
22612 "Primary TDM5 Hostless Capture",
22613 0, 0, 0, 0),
22614 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
22615 "Primary TDM6 Hostless Playback",
22616 0, 0, 0, 0),
22617 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
22618 "Primary TDM6 Hostless Capture",
22619 0, 0, 0, 0),
22620 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
22621 "Primary TDM7 Hostless Playback",
22622 0, 0, 0, 0),
22623 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
22624 "Primary TDM7 Hostless Capture",
22625 0, 0, 0, 0),
22626 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
22627 "Secondary TDM0 Hostless Playback",
22628 0, 0, 0, 0),
22629 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
22630 "Secondary TDM0 Hostless Capture",
22631 0, 0, 0, 0),
22632 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
22633 "Secondary TDM1 Hostless Playback",
22634 0, 0, 0, 0),
22635 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
22636 "Secondary TDM1 Hostless Capture",
22637 0, 0, 0, 0),
22638 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
22639 "Secondary TDM2 Hostless Playback",
22640 0, 0, 0, 0),
22641 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
22642 "Secondary TDM2 Hostless Capture",
22643 0, 0, 0, 0),
22644 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
22645 "Secondary TDM3 Hostless Playback",
22646 0, 0, 0, 0),
22647 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
22648 "Secondary TDM3 Hostless Capture",
22649 0, 0, 0, 0),
22650 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
22651 "Secondary TDM4 Hostless Playback",
22652 0, 0, 0, 0),
22653 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
22654 "Secondary TDM4 Hostless Capture",
22655 0, 0, 0, 0),
22656 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
22657 "Secondary TDM5 Hostless Playback",
22658 0, 0, 0, 0),
22659 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
22660 "Secondary TDM5 Hostless Capture",
22661 0, 0, 0, 0),
22662 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
22663 "Secondary TDM6 Hostless Playback",
22664 0, 0, 0, 0),
22665 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
22666 "Secondary TDM6 Hostless Capture",
22667 0, 0, 0, 0),
22668 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
22669 "Secondary TDM7 Hostless Playback",
22670 0, 0, 0, 0),
22671 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
22672 "Secondary TDM7 Hostless Capture",
22673 0, 0, 0, 0),
22674 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
22675 "Tertiary TDM0 Hostless Playback",
22676 0, 0, 0, 0),
22677 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
22678 "Tertiary TDM0 Hostless Capture",
22679 0, 0, 0, 0),
22680 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
22681 "Tertiary TDM1 Hostless Playback",
22682 0, 0, 0, 0),
22683 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
22684 "Tertiary TDM1 Hostless Capture",
22685 0, 0, 0, 0),
22686 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
22687 "Tertiary TDM2 Hostless Playback",
22688 0, 0, 0, 0),
22689 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
22690 "Tertiary TDM2 Hostless Capture",
22691 0, 0, 0, 0),
22692 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
22693 "Tertiary TDM3 Hostless Playback",
22694 0, 0, 0, 0),
22695 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
22696 "Tertiary TDM3 Hostless Capture",
22697 0, 0, 0, 0),
22698 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
22699 "Tertiary TDM4 Hostless Playback",
22700 0, 0, 0, 0),
22701 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
22702 "Tertiary TDM4 Hostless Capture",
22703 0, 0, 0, 0),
22704 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
22705 "Tertiary TDM5 Hostless Playback",
22706 0, 0, 0, 0),
22707 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
22708 "Tertiary TDM5 Hostless Capture",
22709 0, 0, 0, 0),
22710 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
22711 "Tertiary TDM6 Hostless Playback",
22712 0, 0, 0, 0),
22713 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
22714 "Tertiary TDM6 Hostless Capture",
22715 0, 0, 0, 0),
22716 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
22717 "Tertiary TDM7 Hostless Playback",
22718 0, 0, 0, 0),
22719 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
22720 "Tertiary TDM7 Hostless Capture",
22721 0, 0, 0, 0),
22722 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
22723 "Quaternary TDM0 Hostless Playback",
22724 0, 0, 0, 0),
22725 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
22726 "Quaternary TDM0 Hostless Capture",
22727 0, 0, 0, 0),
22728 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
22729 "Quaternary TDM1 Hostless Playback",
22730 0, 0, 0, 0),
22731 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
22732 "Quaternary TDM1 Hostless Capture",
22733 0, 0, 0, 0),
22734 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
22735 "Quaternary TDM2 Hostless Playback",
22736 0, 0, 0, 0),
22737 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
22738 "Quaternary TDM2 Hostless Capture",
22739 0, 0, 0, 0),
22740 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
22741 "Quaternary TDM3 Hostless Playback",
22742 0, 0, 0, 0),
22743 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
22744 "Quaternary TDM3 Hostless Capture",
22745 0, 0, 0, 0),
22746 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
22747 "Quaternary TDM4 Hostless Playback",
22748 0, 0, 0, 0),
22749 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
22750 "Quaternary TDM4 Hostless Capture",
22751 0, 0, 0, 0),
22752 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
22753 "Quaternary TDM5 Hostless Playback",
22754 0, 0, 0, 0),
22755 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
22756 "Quaternary TDM5 Hostless Capture",
22757 0, 0, 0, 0),
22758 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
22759 "Quaternary TDM6 Hostless Playback",
22760 0, 0, 0, 0),
22761 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
22762 "Quaternary TDM6 Hostless Capture",
22763 0, 0, 0, 0),
22764 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
22765 "Quaternary TDM7 Hostless Playback",
22766 0, 0, 0, 0),
22767 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
22768 "Quaternary TDM7 Hostless Capture",
22769 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022770 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
22771 "Quinary TDM0 Hostless Playback",
22772 0, 0, 0, 0),
22773 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
22774 "Quinary TDM0 Hostless Capture",
22775 0, 0, 0, 0),
22776 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
22777 "Quinary TDM1 Hostless Playback",
22778 0, 0, 0, 0),
22779 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
22780 "Quinary TDM1 Hostless Capture",
22781 0, 0, 0, 0),
22782 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
22783 "Quinary TDM2 Hostless Playback",
22784 0, 0, 0, 0),
22785 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
22786 "Quinary TDM2 Hostless Capture",
22787 0, 0, 0, 0),
22788 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
22789 "Quinary TDM3 Hostless Playback",
22790 0, 0, 0, 0),
22791 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
22792 "Quinary TDM3 Hostless Capture",
22793 0, 0, 0, 0),
22794 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
22795 "Quinary TDM4 Hostless Playback",
22796 0, 0, 0, 0),
22797 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
22798 "Quinary TDM4 Hostless Capture",
22799 0, 0, 0, 0),
22800 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
22801 "Quinary TDM5 Hostless Playback",
22802 0, 0, 0, 0),
22803 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
22804 "Quinary TDM5 Hostless Capture",
22805 0, 0, 0, 0),
22806 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
22807 "Quinary TDM6 Hostless Playback",
22808 0, 0, 0, 0),
22809 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
22810 "Quinary TDM6 Hostless Capture",
22811 0, 0, 0, 0),
22812 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
22813 "Quinary TDM7 Hostless Playback",
22814 0, 0, 0, 0),
22815 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
22816 "Quinary TDM7 Hostless Capture",
22817 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022818 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
22819 "Senary TDM0 Hostless Playback",
22820 0, 0, 0, 0),
22821 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
22822 "Senary TDM0 Hostless Capture",
22823 0, 0, 0, 0),
22824 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
22825 "Senary TDM1 Hostless Playback",
22826 0, 0, 0, 0),
22827 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
22828 "Senary TDM1 Hostless Capture",
22829 0, 0, 0, 0),
22830 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
22831 "Senary TDM2 Hostless Playback",
22832 0, 0, 0, 0),
22833 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
22834 "Senary TDM2 Hostless Capture",
22835 0, 0, 0, 0),
22836 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
22837 "Senary TDM3 Hostless Playback",
22838 0, 0, 0, 0),
22839 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
22840 "Senary TDM3 Hostless Capture",
22841 0, 0, 0, 0),
22842 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
22843 "Senary TDM4 Hostless Playback",
22844 0, 0, 0, 0),
22845 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
22846 "Senary TDM4 Hostless Capture",
22847 0, 0, 0, 0),
22848 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
22849 "Senary TDM5 Hostless Playback",
22850 0, 0, 0, 0),
22851 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
22852 "Senary TDM5 Hostless Capture",
22853 0, 0, 0, 0),
22854 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
22855 "Senary TDM6 Hostless Playback",
22856 0, 0, 0, 0),
22857 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
22858 "Senary TDM6 Hostless Capture",
22859 0, 0, 0, 0),
22860 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
22861 "Senary TDM7 Hostless Playback",
22862 0, 0, 0, 0),
22863 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
22864 "Senary TDM7 Hostless Capture",
22865 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022866
22867 /* LSM */
22868 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
22869 0, 0, 0, 0),
22870 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
22871 0, 0, 0, 0),
22872 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
22873 0, 0, 0, 0),
22874 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
22875 0, 0, 0, 0),
22876 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
22877 0, 0, 0, 0),
22878 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
22879 0, 0, 0, 0),
22880 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
22881 0, 0, 0, 0),
22882 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
22883 0, 0, 0, 0),
22884 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
22885 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
22886 /* Backend AIF */
22887 /* Stream name equals to backend dai link stream name */
22888 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
22889 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
22890 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020022891 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
22892 0, 0, 0, 0),
22893 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
22894 0, 0, 0, 0),
22895 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
22896 0, 0, 0, 0),
22897 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
22898 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022899 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
22900 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
22901 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
22902 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
22903 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
22904 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070022905 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
22906 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022907 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
22908 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
22909 0, 0, 0, 0),
22910 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
22911 0, 0, 0, 0),
22912 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
22913 0, 0, 0, 0),
22914 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
22915 "Secondary MI2S Playback SD1",
22916 0, 0, 0, 0),
22917 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
22918 0, 0, 0, 0),
22919 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
22920 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022921 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
22922 0, 0, 0, 0),
22923 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
22924 0, 0, 0, 0),
22925 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
22926 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022927 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
22928 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022929 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
22930 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022931 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
22932 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022933 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
22934 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022935 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
22936 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
22937 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
22938 0, 0, 0, 0),
22939 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
22940 0, 0, 0, 0),
22941 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
22942 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022943 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
22944 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022945 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
22946 0, 0, 0, 0),
22947 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
22948 0, 0, 0, 0),
22949 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
22950 0, 0, 0, 0),
22951 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
22952 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
22953 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
22954 0, 0, 0, 0),
22955 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
22956 0, 0, 0, 0),
22957 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
22958 0, 0, 0, 0),
22959 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
22960 0, 0, 0, 0),
22961 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
22962 0, 0, 0, 0),
22963 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
22964 0, 0, 0, 0),
22965 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
22966 0, 0, 0, 0),
22967 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
22968 0, 0, 0, 0),
22969 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
22970 0, 0, 0, 0),
22971 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
22972 0, 0, 0, 0),
22973 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
22974 0, 0, 0, 0),
22975 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
22976 0, 0, 0, 0),
22977 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
22978 0, 0, 0, 0),
22979 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
22980 0, 0, 0, 0),
22981 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
22982 0, 0, 0, 0),
22983 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
22984 0, 0, 0, 0),
22985 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
22986 0, 0, 0, 0),
22987 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
22988 0, 0, 0, 0),
22989 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
22990 0, 0, 0, 0),
22991 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
22992 0, 0, 0, 0),
22993 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
22994 0, 0, 0, 0),
22995 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
22996 0, 0, 0, 0),
22997 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
22998 0, 0, 0, 0),
22999 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23000 0, 0, 0, 0),
23001 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23002 0, 0, 0, 0),
23003 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23004 0, 0, 0, 0),
23005 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23006 0, 0, 0, 0),
23007 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23008 0, 0, 0, 0),
23009 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23010 0, 0, 0, 0),
23011 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23012 0, 0, 0, 0),
23013 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23014 0, 0, 0, 0),
23015 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23016 0, 0, 0, 0),
23017 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23018 0, 0, 0, 0),
23019 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23020 0, 0, 0, 0),
23021 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23022 0, 0, 0, 0),
23023 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23024 0, 0, 0, 0),
23025 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23026 0, 0, 0, 0),
23027 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23028 0, 0, 0, 0),
23029 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23030 0, 0, 0, 0),
23031 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23032 0, 0, 0, 0),
23033 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23034 0, 0, 0, 0),
23035 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23036 0, 0, 0, 0),
23037 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23038 0, 0, 0, 0),
23039 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23040 0, 0, 0, 0),
23041 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23042 0, 0, 0, 0),
23043 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23044 0, 0, 0, 0),
23045 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23046 0, 0, 0, 0),
23047 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23048 0, 0, 0, 0),
23049 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23050 0, 0, 0, 0),
23051 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23052 0, 0, 0, 0),
23053 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23054 0, 0, 0, 0),
23055 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23056 0, 0, 0, 0),
23057 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23058 0, 0, 0, 0),
23059 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23060 0, 0, 0, 0),
23061 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23062 0, 0, 0, 0),
23063 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23064 0, 0, 0, 0),
23065 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23066 0, 0, 0, 0),
23067 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23068 0, 0, 0, 0),
23069 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23070 0, 0, 0, 0),
23071 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23072 0, 0, 0, 0),
23073 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23074 0, 0, 0, 0),
23075 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23076 0, 0, 0, 0),
23077 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23078 0, 0, 0, 0),
23079 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23080 0, 0, 0, 0),
23081 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23082 0, 0, 0, 0),
23083 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23084 0, 0, 0, 0),
23085 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23086 0, 0, 0, 0),
23087 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23088 0, 0, 0, 0),
23089 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23090 0, 0, 0, 0),
23091 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23092 0, 0, 0, 0),
23093 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23094 0, 0, 0, 0),
23095 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23096 0, 0, 0, 0),
23097 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23098 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023099 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23100 0, 0, 0, 0),
23101 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23102 0, 0, 0, 0),
23103 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23104 0, 0, 0, 0),
23105 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23106 0, 0, 0, 0),
23107 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23108 0, 0, 0, 0),
23109 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23110 0, 0, 0, 0),
23111 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23112 0, 0, 0, 0),
23113 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23114 0, 0, 0, 0),
23115 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23116 0, 0, 0, 0),
23117 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23118 0, 0, 0, 0),
23119 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23120 0, 0, 0, 0),
23121 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23122 0, 0, 0, 0),
23123 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23124 0, 0, 0, 0),
23125 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23126 0, 0, 0, 0),
23127 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23128 0, 0, 0, 0),
23129 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23130 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023131 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23132 0, 0, 0, 0),
23133 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23134 0, 0, 0, 0),
23135 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23136 0, 0, 0, 0),
23137 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23138 0, 0, 0, 0),
23139 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23140 0, 0, 0, 0),
23141 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23142 0, 0, 0, 0),
23143 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23144 0, 0, 0, 0),
23145 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23146 0, 0, 0, 0),
23147 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23148 0, 0, 0, 0),
23149 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23150 0, 0, 0, 0),
23151 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23152 0, 0, 0, 0),
23153 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23154 0, 0, 0, 0),
23155 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23156 0, 0, 0, 0),
23157 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23158 0, 0, 0, 0),
23159 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23160 0, 0, 0, 0),
23161 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23162 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023163 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23164 0, 0, 0, 0),
23165 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23166 0, 0, 0, 0),
23167 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23168 0, 0, 0, 0),
23169 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23170 0, 0, 0, 0),
23171 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23172 0, 0, 0, 0),
23173 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23174 0, 0, 0, 0),
23175 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23176 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023177 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23178 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023179 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23180 0, 0, 0, 0),
23181 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23182 0, 0, 0, 0),
23183 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23184 0, 0, 0, 0),
23185 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23186 0, 0, 0, 0),
23187 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23188 0, 0, 0, 0),
23189 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23190 0, 0, 0, 0),
23191 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23192 0, 0, 0, 0),
23193 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23194 0, 0, 0, 0),
23195 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23196 0, 0, 0, 0),
23197 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23198 0, 0, 0, 0),
23199 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23200 0, 0, 0, 0),
23201 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23202 0, 0, 0, 0),
23203 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23204 0, 0, 0, 0),
23205 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23206 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023207 /* incall */
23208 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23209 0, 0, 0, 0),
23210 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23211 0, 0, 0, 0),
23212 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23213 0, 0, 0, 0),
23214 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23215 0, 0, 0, 0),
23216 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23217 0, 0, 0, 0),
23218 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23219 0, 0, 0, 0),
23220 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23221 0, 0, 0, 0),
23222 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23223 0, 0, 0, 0),
23224 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23225
23226 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23227 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23228 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23229 0, 0, 0, 0),
23230 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23231 0, 0, 0, 0),
23232 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23233 0, 0, 0, 0),
23234 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23235 0, 0, 0, 0),
23236 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23237 0, 0, 0, 0),
23238 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23239 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023240 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23241 0, 0, 0, 0),
23242 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23243 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023244 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23245 0, 0, 0, 0),
23246 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23247 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023248 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23249 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23250 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23251 0, 0, 0, 0),
23252 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23253 0, 0, 0, 0),
23254 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23255 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23256 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23257 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23258 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23259 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23260 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23261 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23262 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23263 /* In- call recording */
23264 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
23265 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053023266 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
23267 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023268 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
23269 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
23270
23271 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
23272 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023273 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
23274 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023275 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
23276 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
23277
23278 /* Switch Definitions */
23279 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
23280 &slim_fm_switch_mixer_controls),
23281 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
23282 &slim1_fm_switch_mixer_controls),
23283 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
23284 &slim3_fm_switch_mixer_controls),
23285 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
23286 &slim4_fm_switch_mixer_controls),
23287 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
23288 &slim6_fm_switch_mixer_controls),
23289 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23290 &pcm_rx_switch_mixer_controls),
23291 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23292 &int0_mi2s_rx_switch_mixer_controls),
23293 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23294 &int4_mi2s_rx_switch_mixer_controls),
23295 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23296 &pri_mi2s_rx_switch_mixer_controls),
23297 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23298 &sec_mi2s_rx_switch_mixer_controls),
23299 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23300 &tert_mi2s_rx_switch_mixer_controls),
23301 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23302 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053023303 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23304 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080023305 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
23306 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023307 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23308 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023309 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23310 &hfp_pri_aux_switch_mixer_controls),
23311 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23312 &hfp_aux_switch_mixer_controls),
23313 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
23314 &hfp_int_switch_mixer_controls),
23315 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23316 &hfp_slim7_switch_mixer_controls),
23317 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
23318 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023319 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23320 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023321 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023322 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023323 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023324 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023325
23326 /* Mixer definitions */
23327 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23328 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
23329 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23330 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
23331 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23332 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
23333 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23334 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
23335 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23336 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
23337 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23338 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023339 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23340 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023341 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
23342 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
23343 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
23344 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023345 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
23346 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020023347 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23348 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
23349 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23350 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023351 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23352 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
23353 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23354 quaternary_mi2s_rx_mixer_controls,
23355 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
23356 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23357 tertiary_mi2s_rx_mixer_controls,
23358 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
23359 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23360 secondary_mi2s_rx_mixer_controls,
23361 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
23362 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23363 secondary_mi2s_rx2_mixer_controls,
23364 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
23365 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23366 primary_mi2s_rx_mixer_controls,
23367 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
23368 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23369 int0_mi2s_rx_mixer_controls,
23370 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
23371 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23372 int4_mi2s_rx_mixer_controls,
23373 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
23374 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23375 quinary_mi2s_rx_mixer_controls,
23376 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023377 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23378 senary_mi2s_rx_mixer_controls,
23379 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023380 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23381 pri_tdm_rx_0_mixer_controls,
23382 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
23383 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23384 pri_tdm_rx_1_mixer_controls,
23385 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
23386 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23387 pri_tdm_rx_2_mixer_controls,
23388 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
23389 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23390 pri_tdm_rx_3_mixer_controls,
23391 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
23392 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23393 pri_tdm_tx_0_mixer_controls,
23394 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
23395 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23396 sec_tdm_rx_0_mixer_controls,
23397 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
23398 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23399 sec_tdm_rx_1_mixer_controls,
23400 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
23401 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23402 sec_tdm_rx_2_mixer_controls,
23403 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
23404 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23405 sec_tdm_rx_3_mixer_controls,
23406 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
23407 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23408 sec_tdm_tx_0_mixer_controls,
23409 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
23410 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23411 tert_tdm_rx_0_mixer_controls,
23412 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
23413 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23414 tert_tdm_tx_0_mixer_controls,
23415 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
23416 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23417 tert_tdm_rx_1_mixer_controls,
23418 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
23419 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23420 tert_tdm_rx_2_mixer_controls,
23421 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
23422 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23423 tert_tdm_rx_3_mixer_controls,
23424 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
23425 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23426 tert_tdm_rx_4_mixer_controls,
23427 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
23428 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23429 quat_tdm_rx_0_mixer_controls,
23430 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
23431 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23432 quat_tdm_tx_0_mixer_controls,
23433 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
23434 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23435 quat_tdm_rx_1_mixer_controls,
23436 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
23437 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23438 quat_tdm_rx_2_mixer_controls,
23439 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
23440 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23441 quat_tdm_rx_3_mixer_controls,
23442 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023443 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23444 quin_tdm_rx_0_mixer_controls,
23445 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
23446 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23447 quin_tdm_tx_0_mixer_controls,
23448 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
23449 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23450 quin_tdm_rx_1_mixer_controls,
23451 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
23452 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23453 quin_tdm_rx_2_mixer_controls,
23454 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
23455 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23456 quin_tdm_rx_3_mixer_controls,
23457 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023458 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23459 sen_tdm_tx_0_mixer_controls,
23460 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
23461 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23462 sen_tdm_rx_0_mixer_controls,
23463 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
23464 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23465 sen_tdm_rx_1_mixer_controls,
23466 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
23467 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23468 sen_tdm_rx_2_mixer_controls,
23469 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
23470 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23471 sen_tdm_rx_3_mixer_controls,
23472 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023473 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23474 wsa_cdc_dma_rx_0_mixer_controls,
23475 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
23476 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23477 wsa_cdc_dma_rx_1_mixer_controls,
23478 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023479 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23480 rx_cdc_dma_rx_0_mixer_controls,
23481 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
23482 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23483 rx_cdc_dma_rx_1_mixer_controls,
23484 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
23485 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23486 rx_cdc_dma_rx_2_mixer_controls,
23487 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
23488 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23489 rx_cdc_dma_rx_3_mixer_controls,
23490 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
23491 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23492 rx_cdc_dma_rx_4_mixer_controls,
23493 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
23494 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
23495 rx_cdc_dma_rx_5_mixer_controls,
23496 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
23497 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
23498 rx_cdc_dma_rx_6_mixer_controls,
23499 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
23500 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
23501 rx_cdc_dma_rx_7_mixer_controls,
23502 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023503 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
23504 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
23505 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
23506 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
23507 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
23508 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
23509 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
23510 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
23511 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
23512 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
23513 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
23514 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
23515 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
23516 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
23517 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
23518 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023519 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
23520 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023521 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
23522 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023523 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
23524 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
23525 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
23526 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
23527 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
23528 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
23529 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
23530 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023531 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
23532 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070023533 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
23534 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053023535 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
23536 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023537 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
23538 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
23539 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
23540 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053023541 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
23542 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023543 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23544 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
23545 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23546 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
23547 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23548 tert_auxpcm_rx_mixer_controls,
23549 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
23550 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23551 quat_auxpcm_rx_mixer_controls,
23552 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023553 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23554 quin_auxpcm_rx_mixer_controls,
23555 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023556 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23557 sen_auxpcm_rx_mixer_controls,
23558 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023559 /* incall */
23560 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
23561 incall_music_delivery_mixer_controls,
23562 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
23563 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23564 incall_music2_delivery_mixer_controls,
23565 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
23566 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23567 slimbus_4_rx_mixer_controls,
23568 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
23569 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23570 slimbus_6_rx_mixer_controls,
23571 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
23572 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23573 usb_audio_rx_mixer_controls,
23574 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
23575 /* Voice Mixer */
23576 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
23577 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
23578 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
23579 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
23580 SND_SOC_NOPM, 0, 0,
23581 sec_i2s_rx_voice_mixer_controls,
23582 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
23583 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
23584 SND_SOC_NOPM, 0, 0,
23585 sec_mi2s_rx_voice_mixer_controls,
23586 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
23587 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
23588 SND_SOC_NOPM, 0, 0,
23589 slimbus_rx_voice_mixer_controls,
23590 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
23591 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
23592 SND_SOC_NOPM, 0, 0,
23593 bt_sco_rx_voice_mixer_controls,
23594 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
23595 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
23596 SND_SOC_NOPM, 0, 0,
23597 afe_pcm_rx_voice_mixer_controls,
23598 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
23599 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
23600 SND_SOC_NOPM, 0, 0,
23601 aux_pcm_rx_voice_mixer_controls,
23602 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
23603 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
23604 SND_SOC_NOPM, 0, 0,
23605 sec_aux_pcm_rx_voice_mixer_controls,
23606 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
23607 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
23608 SND_SOC_NOPM, 0, 0,
23609 tert_aux_pcm_rx_voice_mixer_controls,
23610 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
23611 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
23612 SND_SOC_NOPM, 0, 0,
23613 quat_aux_pcm_rx_voice_mixer_controls,
23614 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023615 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
23616 SND_SOC_NOPM, 0, 0,
23617 quin_aux_pcm_rx_voice_mixer_controls,
23618 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023619 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
23620 SND_SOC_NOPM, 0, 0,
23621 sen_aux_pcm_rx_voice_mixer_controls,
23622 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023623 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
23624 SND_SOC_NOPM, 0, 0,
23625 hdmi_rx_voice_mixer_controls,
23626 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
23627 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
23628 SND_SOC_NOPM, 0, 0,
23629 mi2s_rx_voice_mixer_controls,
23630 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
23631 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
23632 SND_SOC_NOPM, 0, 0,
23633 pri_mi2s_rx_voice_mixer_controls,
23634 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
23635 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
23636 SND_SOC_NOPM, 0, 0,
23637 int0_mi2s_rx_voice_mixer_controls,
23638 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
23639 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
23640 SND_SOC_NOPM, 0, 0,
23641 int4_mi2s_rx_voice_mixer_controls,
23642 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
23643 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
23644 SND_SOC_NOPM, 0, 0,
23645 tert_mi2s_rx_voice_mixer_controls,
23646 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
23647 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
23648 SND_SOC_NOPM, 0, 0,
23649 quat_mi2s_rx_voice_mixer_controls,
23650 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
23651 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
23652 SND_SOC_NOPM, 0, 0,
23653 quin_mi2s_rx_voice_mixer_controls,
23654 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053023655 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
23656 SND_SOC_NOPM, 0, 0,
23657 pri_tdm_rx_0_voice_mixer_controls,
23658 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
23659 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
23660 SND_SOC_NOPM, 0, 0,
23661 pri_tdm_rx_1_voice_mixer_controls,
23662 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
23663 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
23664 SND_SOC_NOPM, 0, 0,
23665 pri_tdm_rx_2_voice_mixer_controls,
23666 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
23667 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
23668 SND_SOC_NOPM, 0, 0,
23669 pri_tdm_rx_3_voice_mixer_controls,
23670 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023671 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
23672 SND_SOC_NOPM, 0, 0,
23673 sen_mi2s_rx_voice_mixer_controls,
23674 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023675 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
23676 SND_SOC_NOPM, 0, 0,
23677 quat_tdm_rx_2_voice_mixer_controls,
23678 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023679 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
23680 SND_SOC_NOPM, 0, 0,
23681 wsa_cdc_dma_rx_0_voice_mixer_controls,
23682 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
23683 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
23684 SND_SOC_NOPM, 0, 0,
23685 rx_cdc_dma_rx_0_voice_mixer_controls,
23686 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023687 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
23688 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
23689 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023690 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
23691 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
23692 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
23693 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
23694 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
23695 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
23696 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23697 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
23698 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23699 int_bt_a2dp_rx_mixer_controls,
23700 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
23701 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23702 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
23703 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23704 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
23705 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23706 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
23707 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23708 tx_voice2_stub_mixer_controls,
23709 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
23710 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23711 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
23712 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
23713 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
23714 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
23715 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
23716 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23717 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
23718 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
23719 SND_SOC_NOPM, 0, 0,
23720 slimbus_6_rx_voice_mixer_controls,
23721 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
23722 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23723 slimbus_7_rx_voice_mixer_controls,
23724 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
23725 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23726 slimbus_8_rx_voice_mixer_controls,
23727 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
23728 /* port mixer */
23729 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
23730 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
23731 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
23732 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
23733 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
23734 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
23735 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
23736 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
23737 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
23738 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
23739 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
23740 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
23741 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
23742 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
23743 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023744 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
23745 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
23746 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023747 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
23748 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
23749 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023750 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23751 sbus_1_rx_port_mixer_controls,
23752 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
23753 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23754 bt_sco_rx_port_mixer_controls,
23755 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
23756 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
23757 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
23758 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
23759 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
23760 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
23761 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
23762 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
23763 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
23764 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070023765 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070023766 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
23767 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023768 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
23769 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
23770 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
23771 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
23772 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
23773 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
23774 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
23775 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
23776 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
23777 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23778 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
23779 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23780 primary_mi2s_rx_port_mixer_controls,
23781 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
23782 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23783 sec_mi2s_rx_port_mixer_controls,
23784 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
23785 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23786 tert_mi2s_rx_port_mixer_controls,
23787 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
23788 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23789 quat_mi2s_rx_port_mixer_controls,
23790 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023791 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23792 quin_mi2s_rx_port_mixer_controls,
23793 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023794 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23795 sen_mi2s_rx_port_mixer_controls,
23796 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023797 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23798 pri_tdm_rx_0_port_mixer_controls,
23799 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
23800 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23801 pri_tdm_rx_1_port_mixer_controls,
23802 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
23803 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23804 pri_tdm_rx_2_port_mixer_controls,
23805 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
23806 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23807 pri_tdm_rx_3_port_mixer_controls,
23808 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
23809 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23810 sec_tdm_rx_0_port_mixer_controls,
23811 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
23812 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23813 sec_tdm_rx_1_port_mixer_controls,
23814 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
23815 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23816 sec_tdm_rx_2_port_mixer_controls,
23817 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
23818 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23819 sec_tdm_rx_3_port_mixer_controls,
23820 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070023821 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
23822 sec_tdm_rx_7_port_mixer_controls,
23823 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023824 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23825 tert_tdm_rx_0_port_mixer_controls,
23826 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
23827 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23828 tert_tdm_rx_1_port_mixer_controls,
23829 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
23830 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23831 tert_tdm_rx_2_port_mixer_controls,
23832 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
23833 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23834 tert_tdm_rx_3_port_mixer_controls,
23835 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
23836 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23837 quat_tdm_rx_0_port_mixer_controls,
23838 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
23839 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23840 quat_tdm_rx_1_port_mixer_controls,
23841 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
23842 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23843 quat_tdm_rx_2_port_mixer_controls,
23844 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
23845 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23846 quat_tdm_rx_3_port_mixer_controls,
23847 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050023848 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
23849 quat_tdm_rx_7_port_mixer_controls,
23850 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023851 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23852 quin_tdm_rx_0_port_mixer_controls,
23853 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
23854 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23855 quin_tdm_rx_1_port_mixer_controls,
23856 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
23857 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23858 quin_tdm_rx_2_port_mixer_controls,
23859 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
23860 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23861 quin_tdm_rx_3_port_mixer_controls,
23862 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080023863 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
23864 quin_tdm_rx_7_port_mixer_controls,
23865 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023866 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23867 sen_tdm_rx_0_port_mixer_controls,
23868 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
23869 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
23870 sen_tdm_rx_1_port_mixer_controls,
23871 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
23872 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
23873 sen_tdm_rx_2_port_mixer_controls,
23874 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
23875 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
23876 sen_tdm_rx_3_port_mixer_controls,
23877 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023878 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23879 int0_mi2s_rx_port_mixer_controls,
23880 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
23881 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23882 int4_mi2s_rx_port_mixer_controls,
23883 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023884 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23885 wsa_cdc_dma_rx_0_port_mixer_controls,
23886 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
23887 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
23888 rx_cdc_dma_rx_0_port_mixer_controls,
23889 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023890 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
23891 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
23892 ARRAY_SIZE(tx_qchat_mixer_controls)),
23893 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
23894 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
23895 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
23896 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
23897 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
23898 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080023899 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
23900 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
23901 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023902 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
23903 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
23904 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023905 /* lsm mixer definitions */
23906 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
23907 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
23908 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
23909 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
23910 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
23911 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
23912 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
23913 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
23914 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
23915 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
23916 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
23917 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
23918 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
23919 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
23920 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
23921 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
23922 /* Virtual Pins to force backends ON atm */
23923 SND_SOC_DAPM_OUTPUT("BE_OUT"),
23924 SND_SOC_DAPM_INPUT("BE_IN"),
23925
23926 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
23927 &slim0_rx_vi_fb_lch_mux),
23928 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
23929 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023930 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
23931 &wsa_rx_0_vi_fb_lch_mux),
23932 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
23933 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023934 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
23935 &mi2s_rx_vi_fb_mux),
23936 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
23937 &int4_mi2s_rx_vi_fb_mono_ch_mux),
23938 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
23939 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
23940
23941 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
23942 &voc_ext_ec_mux),
23943 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
23944 &ext_ec_ref_mux_ul1),
23945 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
23946 &ext_ec_ref_mux_ul2),
23947 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
23948 &ext_ec_ref_mux_ul3),
23949 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
23950 &ext_ec_ref_mux_ul4),
23951 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
23952 &ext_ec_ref_mux_ul5),
23953 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
23954 &ext_ec_ref_mux_ul6),
23955 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
23956 &ext_ec_ref_mux_ul8),
23957 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
23958 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023959 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
23960 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023961 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
23962 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023963 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
23964 &ext_ec_ref_mux_ul17),
23965 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
23966 &ext_ec_ref_mux_ul18),
23967 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
23968 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080023969 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
23970 &ext_ec_ref_mux_ul28),
23971 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
23972 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023973};
23974
23975static const struct snd_soc_dapm_route intercon[] = {
23976 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23977 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23978 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23979 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23980 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
23981 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
23982 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
23983 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
23984 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
23985 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
23986 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
23987 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
23988 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
23989 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
23990 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
23991 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053023992 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023993 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
23994
23995 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
23996 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
23997 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
23998 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
23999 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24000 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24001 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24002 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24003 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24004 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24005 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24006 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24007 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24008 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24009 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24010 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024011 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024012 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24013
24014 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24015 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24016 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24017 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24018 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24019 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24020 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24021 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24022 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24023 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24024 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24025 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24026 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24027 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24028 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24029 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024030 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024031 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24032
24033 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24034 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24035 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24036 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24037 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24038 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24039 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24040 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24041 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24042 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24043 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24044 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24045 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24046 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24047 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24048 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024049 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024050 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24051
24052 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24053 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24054 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24055 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24056 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24057 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24058 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24059 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24060 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24061 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24062 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24063 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24064 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24065 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24066 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24067 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024068 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024069 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24070
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024071 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24072 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24073 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24074 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24075 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24076 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24077 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24078 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24079 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24080 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24081 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24082 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24083 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24084 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24085 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24086 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024087 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024088 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24089
24090 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24091 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24092 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24093 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24094 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24095 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24096 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24097 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24098 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24099 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24100 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24101 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24102 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24103 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24104 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24105 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024106 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024107 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24108
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024109 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24110 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24111 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24112 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24113 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24114 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24115 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24116 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24117 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24118 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24119 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24120 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24121 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24122 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24123 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24124 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024125 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024126 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24127
24128 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24129 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24130 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24131 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24132 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24133 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24134 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24135 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24136 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24137 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24138 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24139 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24140 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24141 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24142 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24143 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024144 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024145 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24146
24147 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24148 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24149 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24150 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24151 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24152 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24153 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24154 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24155 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24156 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24157 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24158 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24159 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24160 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24161 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24162 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024163 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024164 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24165
24166 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24167 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24168 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24169 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24170 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24171 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24172 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24173 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24174 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24175 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24176 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24177 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24178 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24179 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24180 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24181 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024182 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024183 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24184
24185 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24186 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24187 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24188 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24189 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24190 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24191 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24192 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24193 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24194 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24195 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24196 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24197 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24198 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24199 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24200 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024201 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024202 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24203
24204 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24205 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24206 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24207 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24208 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24209 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24210 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24211 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24212 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24213 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24214 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24215 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24216 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24217 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24218 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24219 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024220 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024221 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24222
24223 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24224 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24225 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24226 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24227 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24228 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24229 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24230 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24231 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24232 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24233 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24234 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24235 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24236 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
24237 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
24238 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024239 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024240 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
24241
24242 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
24243 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
24244 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
24245 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
24246 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
24247 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
24248 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
24249 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
24250 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
24251 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
24252 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
24253 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
24254 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
24255 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
24256 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
24257 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024258 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024259 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
24260
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024261 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
24262 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
24263 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
24264 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
24265 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
24266 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
24267 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
24268 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
24269 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
24270 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
24271 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
24272 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
24273 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
24274 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
24275 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
24276 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024277 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024278 {"HDMI", NULL, "HDMI Mixer"},
24279
24280 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
24281 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
24282 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
24283 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
24284 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
24285 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
24286 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
24287 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
24288 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
24289 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
24290 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
24291 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
24292 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
24293 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
24294 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
24295 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024296 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024297 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
24298
Karthikeyan Mani57550082018-05-03 18:43:58 -070024299 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
24300 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
24301 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
24302 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
24303 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
24304 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
24305 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
24306 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
24307 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
24308 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
24309 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
24310 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
24311 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
24312 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
24313 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
24314 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024315 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070024316 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
24317
Ralf Herzc8701f72018-06-20 11:37:35 +020024318 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24319 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24320 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24321 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24322 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24323 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24324 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24325 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24326 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24327 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24328 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24329 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24330 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24331 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24332 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24333 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024334 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024335 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
24336
24337 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24338 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24339 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24340 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24341 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24342 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24343 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24344 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24345 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24346 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24347 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24348 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24349 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24350 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24351 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24352 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024353 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024354 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024355
24356 /* incall */
24357 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
24358 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
24359 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
24360 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
24361 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
24362 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24363 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24364 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24365 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24366 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
24367 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24368 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24369 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24370 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24371 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
24372
24373 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24374 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24375 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24376 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24377 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24378 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24379 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24380 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24381 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24382 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24383 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24384 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24385 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24386 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24387 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24388 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024389 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024390 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
24391
24392 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24393 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24394 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24395 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24396 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24397 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24398 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24399 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24400 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24401 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24402 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24403 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24404 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24405 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24406 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24407 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024408 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024409 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
24410
Surendar Karka3ef3d812018-09-28 18:52:35 +053024411 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24412 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24413 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24414 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24415 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24416 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24417 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24418 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24419 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24420 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24421 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24422 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24423 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24424 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24425 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24426 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24427 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24428 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
24429
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024430 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24431 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24432 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24433 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24434 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24435 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24436 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24437 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24438 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24439 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24440 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24441 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24442 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24443 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24444 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24445 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024446 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024447 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
24448
24449 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24450 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24451 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24452 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24453 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24454 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24455 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
24456 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24457 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24458 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024459 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024460 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24461 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024462 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024463 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024464 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024465 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024466 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024467 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024468 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024469 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024470 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024471 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024472 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024473 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024474 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024475 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
24476 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024477 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024478 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024479 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24480 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24481 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24482 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24483 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024484 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24485 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024486 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024487 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024488 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024489 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24490 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24491 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024492 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024493 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24494 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24495 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24496 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24497 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024498 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024499 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024500 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024501 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24502 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24503 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024504 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024505 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24506 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024507 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024508 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024509 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024510 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024511 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024512 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024513 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024514 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24515 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024516 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024517 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024518 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024519 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024520 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24521 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24522 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024523 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024524 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024525 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24526 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24527 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024528 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024529
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024530 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24531 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24532 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24533 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24534 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24535 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24536 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24537 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24538 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24539 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24540 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24541 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24542 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24543 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24544 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24545 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024546 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024547 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
24548
24549 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24550 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24551 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24552 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24553 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24554 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24555 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24556 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24557 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24558 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24559 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24560 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24561 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24562 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24563 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024564 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024565 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
24566
24567 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24568 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24569 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24570 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24571 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24572 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24573 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24574 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24575 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24576 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24577 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24578 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24579 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24580 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024581 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024582 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
24583
24584 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24585 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24586 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24587 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24588 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24589 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24590 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24591 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24592 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24593 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24594 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24595 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24596 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24597 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024598 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024599 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
24600
24601 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24602 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
24603
24604 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24605 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24606
24607 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24608 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24609 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24610 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24611 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24612 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24613 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24614 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053024615 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024616 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24617 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24618 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24619 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24620 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24621 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24622 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024623 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024624 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
24625
24626 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24627 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24628 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24629 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24630 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24631 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24632 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24633 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24634 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24635 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24636 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24637 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24638 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24639 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24640 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24641 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
24642
24643 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24644 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24645 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24646 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24647 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24648 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24649 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24650 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24651 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24652 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24653 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24654 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24655 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24656 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24657 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24658 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
24659
24660 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24661 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24662 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24663 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24664 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24665 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24666 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24667 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24668 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24669 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24670 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24671 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24672 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24673 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24674 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24675 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24676 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24677 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
24678
Karthikeyan Manic3700752019-03-11 18:33:53 -070024679 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24680 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24681 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24682 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24683 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24684 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24685 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24686 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24687 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24688 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24689 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24690 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24691 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24692 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24693 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24694 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
24695
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024696 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24697 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24698 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24699 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24700 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24701 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24702 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24703 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24704 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24705 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24706 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24707 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24708 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24709 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24710 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24711 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024712 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024713 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024714 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
24715
24716 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24717 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24718 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24719 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24720 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24721 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24722 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24723 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24724 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24725 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24726 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24727 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24728 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24729 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24730 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24731 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024732 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024733 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024734 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
24735
24736 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24737 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24738 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24739 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24740 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24741 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24742 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24743 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24744 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24745 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24746 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24747 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24748 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24749 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24750 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24751 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024752 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024753 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024754 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
24755
24756 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24757 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24758 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24759 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24760 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24761 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24762 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24763 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24764 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24765 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24766 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24767 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24768 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24769 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24770 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24771 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024772 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024773 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024774 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
24775
24776 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24777 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24778 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24779 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24780 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24781 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24782 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24783 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24784 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24785 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24786 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24787 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24788 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24789 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24790 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24791 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24792 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
24793
24794 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24795 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24796 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24797 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24798 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24799 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24800 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24801 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24802 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24803 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24804 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24805 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24806 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24807 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24808 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24809 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024810 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024811 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024812 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
24813
24814 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24815 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24816 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24817 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24818 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24819 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24820 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24821 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24822 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24823 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24824 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24825 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24826 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24827 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24828 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24829 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024830 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024831 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024832 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
24833
24834 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24835 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24836 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24837 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24838 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24839 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24840 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24841 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24842 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24843 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24844 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24845 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24846 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24847 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24848 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24849 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024850 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024851 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024852 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
24853
24854 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24855 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24856 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24857 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24858 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24859 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24860 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24861 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24862 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24863 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24864 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24865 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24866 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24867 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24868 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24869 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024870 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024871 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024872 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
24873
24874 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24875 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24876 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24877 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24878 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24879 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24880 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24881 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24882 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24883 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24884 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24885 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24886 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24887 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24888 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24889 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24890 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
24891
24892 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24893 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24894 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24895 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24896 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24897 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24898 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24899 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24900 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24901 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24902 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24903 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24904 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24905 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24906 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24907 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024908 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024909 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024910 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
24911
24912 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24913 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24914 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24915 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24916 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24917 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24918 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24919 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24920 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24921 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24922 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24923 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24924 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24925 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24926 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24927 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
24928 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
24929
24930 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24931 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24932 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24933 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24934 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24935 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24936 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24937 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24938 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24939 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24940 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24941 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24942 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24943 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24944 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24945 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024946 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024947 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024948 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
24949
24950 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24951 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24952 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24953 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24954 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24955 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24956 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24957 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24958 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24959 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24960 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24961 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24962 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24963 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24964 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24965 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024966 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024967 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024968 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
24969
24970 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24971 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24972 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24973 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24974 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24975 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24976 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24977 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24978 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24979 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24980 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24981 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24982 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24983 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24984 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24985 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024986 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024987 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024988 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
24989
24990 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24991 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24992 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24993 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24994 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24995 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24996 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24997 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24998 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24999 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25000 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25001 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25002 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25003 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25004 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25005 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025006 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025007 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025008 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25009
25010 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25011 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25012 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25013 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25014 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25015 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25016 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25017 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25018 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25019 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25020 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25021 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25022 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25023 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25024 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25025 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25026 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025027 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025028 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025029 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025031 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25032 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25033 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25034 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25035 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25036 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25037 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25038 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25039 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25040 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25041 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25042 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25043 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25044 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25045 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25046 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25047 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25048
25049 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25050 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25051 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25052 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25053 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25054 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25055 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25056 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25057 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25058 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25059 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25060 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25061 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25062 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25063 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25064 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25065 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025066 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025067 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025068 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25069
25070 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25071 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25072 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25073 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25074 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25075 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25076 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25077 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25078 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25079 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25080 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25081 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25082 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25083 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25084 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25085 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25086 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025087 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025088 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025089 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25090
25091 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25092 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25093 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25094 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25095 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25096 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25097 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25098 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25099 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25100 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25101 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25102 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25103 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25104 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25105 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25106 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25107 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025108 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025109 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025110 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25111
Rohit Kumara5077932017-09-10 22:05:05 +053025112 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25113 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25114 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25115 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25116 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25117 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25118 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25119 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25120 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25121 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25122 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25123 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25124 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25125 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25126 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25127 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25128 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025129 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025130 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025131 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25132
25133 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25134 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25135 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25136 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25137 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25138 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25139 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25140 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25141 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25142 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25143 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25144 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25145 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25146 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25147 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25148 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25149 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25150
25151 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25152 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25153 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25154 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25155 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25156 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25157 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25158 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25159 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25160 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25161 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25162 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25163 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25164 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25165 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25166 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25167 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025168 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025169 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025170 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
25171
25172 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25173 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25174 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25175 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25176 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25177 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25178 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25179 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25180 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25181 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25182 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25183 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25184 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25185 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25186 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25187 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25188 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025189 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025190 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025191 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
25192
25193 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25194 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25195 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25196 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25197 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25198 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25199 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25200 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25201 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25202 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25203 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25204 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25205 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25206 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25207 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25208 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25209 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025210 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025211 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025212 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
25213
Karthikeyan Manic3700752019-03-11 18:33:53 -070025214 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25215 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25216 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25217 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25218 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25219 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25220 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25221 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25222 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25223 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25224 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25225 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25226 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25227 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25228 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25229 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25230 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
25231 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
25232 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
25233
25234 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25235 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25236 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25237 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25238 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25239 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25240 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25241 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25242 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25243 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25244 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25245 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25246 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25247 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25248 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25249 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25250 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
25251
25252 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25253 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25254 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25255 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25256 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25257 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25258 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25259 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25260 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25261 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25262 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25263 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25264 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25265 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25266 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25267 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25268 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
25269 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
25270 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
25271
25272 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25273 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25274 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25275 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25276 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25277 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25278 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25279 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25280 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25281 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25282 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25283 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25284 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25285 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25286 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25287 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25288 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
25289 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
25290 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
25291
25292 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25293 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25294 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25295 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25296 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25297 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25298 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25299 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25300 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25301 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25302 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25303 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25304 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25305 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25306 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25307 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25308 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
25309 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
25310 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
25311
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025312 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
25313 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
25314 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
25315 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
25316 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025317 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025318 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025319 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25320 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25321 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25322 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
25323 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025324 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
25325 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025326 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25327 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25328 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25329 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25330 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25331 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25332 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025333 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025334 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25335 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25336 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025337 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025338 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25339 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
25340 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025341 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025342 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25343 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025344 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
25345 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
25346 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025347 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025348 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
25349 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
25350 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025351 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025352 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025353 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
25354 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
25355 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025356 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
25357 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
25358 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025359 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25360 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25361 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
25362 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
25363 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25364 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25365 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25366 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025367 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025368 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25369 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25370 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025371 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025372 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25373 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25374 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025375 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025376 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025377 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25378 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25379 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025380 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025381 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025382 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25383 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25384 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25385 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25386 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025387 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025388 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25389 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25390 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25391 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025392 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025393 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025394
25395 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25396 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25397 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25398 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25399 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25400 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25401 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25402 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25403 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25404 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25405 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25406 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25407 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25408 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25409 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25410 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025411 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025412 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25413 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25414 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25415 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025416 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25417 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25418 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25419 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025420 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25421 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25422 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25423 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25424 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025425 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025426 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25427 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25428 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25429 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25430 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25431 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025432 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25433 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025434
25435 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25436 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25437 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25438 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25439 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25440 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25441 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25442 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25443 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25444 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25445 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25446 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25447 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25448 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25449 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25450 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025451 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025452 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25453 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25454 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25455 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025456 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25457 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25458 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25459 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025460 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25461 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25462 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25463 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25464 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025465 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025466 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25467 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25468 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25469 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25470 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25471 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025472 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25473 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025474
25475 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25476 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25477 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25478 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25479 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25480 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25481 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25482 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25483 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25484 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25485 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25486 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25487 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25488 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25489 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25490 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025491 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025492 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25493 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25494 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25495 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025496 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25497 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25498 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25499 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025500 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25501 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25502 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25503 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25504 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025505 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025506 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25507 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25508 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25509 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25510 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25511 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025512 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25513 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025514
25515 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25516 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25517 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25518 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25519 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25520 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25521 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25522 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25523 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25524 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25525 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25526 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25527 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25528 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25529 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25530 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025531 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025532 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25533 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25534 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25535 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025536 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25537 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25538 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25539 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025540 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25541 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25542 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25543 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25544 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025545 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025546 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25547 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25548 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25549 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25550 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25551 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025552 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25553 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025554
25555 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25556 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25557 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25558 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25559 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25560 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25561 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25562 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25563 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25564 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25565 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25566 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25567 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25568 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25569 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25570 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025571 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025572 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25573 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25574 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25575 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025576 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25577 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25578 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25579 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025580 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25581 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25582 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25583 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25584 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025585 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025586 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25587 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25588 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25589 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25590 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25591 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025592 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25593 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025594
25595 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25596 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25597 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25598 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25599 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25600 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25601 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25602 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25603 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25604 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25605 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25606 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25607 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25608 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25609 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25610 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025611 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025612 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25613 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25614 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25615 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025616 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25617 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25618 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25619 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025620 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25621 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25622 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25623 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25624 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025625 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025626 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25627 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25628 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25629 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25630 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25631 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025632 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25633 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025634
25635 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25636 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25637 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25638 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25639 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25640 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25641 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25642 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25643 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25644 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25645 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25646 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25647 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25648 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25649 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25650 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025651 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025652 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25653 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25654 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25655 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025656 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25657 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25658 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25659 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025660 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25661 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25662 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25663 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25664 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025665 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025666 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25667 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25668 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25669 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25670 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25671 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025672 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25673 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025674
Samyak Jain810e42a2019-01-07 17:53:34 +053025675 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025676 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25677 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25678 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25679 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25680 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25681 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25682 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25683 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025684 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25685 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25686 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25687 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025688 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25689 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25690 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25691 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025692 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25693 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25694 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25695 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25696 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025697 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025698 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25699 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25700 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25701 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25702 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25703 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025704 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25705 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025706 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025707
Laxminath Kasam38070be2017-08-17 18:21:59 +053025708 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25709 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25710 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25711 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25712 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25713 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25714 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25715 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025716 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25717 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25718 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25719 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25720 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25721 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025722 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025723
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025724 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25725 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25726 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25727 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025728 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025729 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025730 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25731 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25732 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25733 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25734 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25735 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25736 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25737 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25738 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25739 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25740 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25741 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25742 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25743 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25744 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25745 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025746 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25747 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25748 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25749 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025750 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25751 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25752 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25753 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025754 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25755 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25756 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25757 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25758 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025759 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025760 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25761 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25762 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25763 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25764 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25765 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025766 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25767 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025768 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025769
Derek Chen07c6d1c2018-07-05 10:39:25 -070025770 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25771 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25772 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25773 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25774 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25775 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25776 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25777 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25778 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25779 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25780 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25781 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25782 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25783 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25784 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25785 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25786 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25787 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25788 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25789 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25790 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25791 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025792 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25793 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25794 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25795 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053025796 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25797 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25798 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25799 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25800 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025801 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053025802 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25803 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25804 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25805 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25806 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25807 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
25808 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25809 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025810 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025811
Derek Chenb097d922019-07-31 17:28:02 -070025812 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25813 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25814 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25815 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25816 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25817 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25818 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25819 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25820 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25821 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25822 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25823 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25824 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25825 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25826 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25827 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25828 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25829 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25830 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25831 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
25832
Surendar Karkac1cde372018-08-14 18:56:24 +053025833 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025834 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025835 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25836 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025837 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025838 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25839 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25840 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25841 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25842 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025843 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025844 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25845 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025846 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025847
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025848 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25849 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25850 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25851 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25852 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
25853 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025854 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025855
Asish Bhattacharya34504582017-08-08 12:55:01 +053025856 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25857 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25858 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25859 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25860 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25861 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25862 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25863 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25864 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25865 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25866 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25867 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25868 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25869 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25870 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25871 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
25872 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025873 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25874 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25875 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25876 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25877 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025878 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025879 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25880 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25881 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25882 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25883 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25884 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025885 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25886 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025887 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025888
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025889 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25890 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25891 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25892 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25893 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25894 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025895 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025896
25897 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25898 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25899 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25900 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25901 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25902 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025903 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025904 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25905 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025906
25907 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25908 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25909 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25910 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25911 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25912 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025913 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025914 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25915 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025916
25917 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25918 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25919 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25920 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25921 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25922 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025923 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025924 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25925 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025926
25927 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25928 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25929 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25930 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25931 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25932 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025933 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025934 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25935 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025936
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025937 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25938 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25939 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25940 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25941 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25942 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
25943 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
25944 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25945 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
25946
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025947 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25948 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25949 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25950 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25951 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25952 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25953 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25954 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25955 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25956 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25957 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25958 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25959 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25960 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25961 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25962 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25963 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
25964 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
25965
25966 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25967 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25968 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25969 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25970 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25971 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25972 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25973 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25974 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25975 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25976 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25977 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25978 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25979 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25980 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25981 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25982 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
25983 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
25984
25985 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25986 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25987 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25988 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25989 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25990 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25991 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25992 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25993 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25994 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25995 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25996 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25997 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25998 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25999 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26000 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26001 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26002
26003 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26004 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26005 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26006 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26007 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26008 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26009 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26010 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26011 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26012 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26013 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26014 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26015 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26016 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26017 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26018 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26019 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26020
26021 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26022 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26023 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026024 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026025 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26026 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26027 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026028 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26029 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026030 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026031 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26032 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026033 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026034 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26035 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026036 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026037 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26038 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26039 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026040 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26041 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026042 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026043 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26044 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26045 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26046
26047 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26048 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26049 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026050 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026051 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26052 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26053 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026054 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26055 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026056 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026057 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26058 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026059 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026060 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26061 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26062 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26063 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26064 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26065 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26066 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26067 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26068 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026069 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026070 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026071 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26072 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26073 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26074 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026075 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026076 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026077 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026078 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26079 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026080 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026081
26082 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26083 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26084 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26085 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26086 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26087 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26088 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26089 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26090 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26091 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26092 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26093 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26094 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26095 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26096 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26097 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026098 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026099 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26100
26101 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26102 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26103 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26104 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26105 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26106 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26107 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26108 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26109 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26110 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26111 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26112 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26113 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26114 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26115 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26116 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026117 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026118 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26119
26120 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26121 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26122 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26123 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26124 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26125 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26126 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26127 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26128 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26129 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26130 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26131 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26132 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26133 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26134 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26135 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26136 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26137
26138 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26139 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26140 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26141 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26142 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26143 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26144 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26145 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26146 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26147 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26148 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26149 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26150 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26151 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26152 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26153 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26154 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
26155
Rohit Kumara5077932017-09-10 22:05:05 +053026156 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26157 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26158 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26159 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26160 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26161 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26162 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26163 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26164 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26165 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26166 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26167 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26168 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26169 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26170 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26171 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26172 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
26173
Karthikeyan Manic3700752019-03-11 18:33:53 -070026174 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26175 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26176 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26177 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26178 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26179 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26180 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26181 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26182 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26183 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26184 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26185 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26186 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26187 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26188 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26189 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26190 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
26191
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026192 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26193 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26194 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26195 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26196 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26197 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
26198
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026199 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
26200 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26201 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26202 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
26203
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026204 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026205 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26206 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026207 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26208 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26209 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26210 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26211 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
26212
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026213 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
26214 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026215 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26216 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26217 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26218 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
26219
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026220 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
26221 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026222 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26223 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26224 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26225 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
26226
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026227 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26228 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026229 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26230 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26231 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26232 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
26233
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026234 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
26235 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026236 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26237 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26238 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26239 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
26240
Karthikeyan Mani57550082018-05-03 18:43:58 -070026241 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
26242 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26243 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26244 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26245 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26246 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
26247
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026248 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26249 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26250 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26251 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26252 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026253 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
26254
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026255 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26256 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26257 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26258 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26259 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26260 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
26261
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026262 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26263 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026264 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26265 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26266 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26267 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
26268
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026269 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26270 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026271 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26272 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26273 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26274 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
26275
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026276 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26277 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026278 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26279 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26280 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26281 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
26282
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026283 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26284 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026285 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26286 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26287 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26288 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
26289
Rohit Kumara5077932017-09-10 22:05:05 +053026290 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26291 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026292 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26293 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26294 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26295 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
26296
Karthikeyan Manic3700752019-03-11 18:33:53 -070026297 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26298 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26299 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26300 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26301 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26302 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
26303
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026304 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26305 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26306 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26307 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26308 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26309 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
26310 {"HDMI", NULL, "HDMI_DL_HL"},
26311
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026312 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026313 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26314 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026315 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26316 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26317 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080026318 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026319 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
26320
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026321 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026322 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26323 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026324 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26325 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26326 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26327 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26328 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
26329
26330 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26331 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26332 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26333 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26334 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26335 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
26336
26337 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26338 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26339 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26340 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26341 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26342 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
26343
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026344 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026345 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26346 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026347 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26348 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26349 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26350 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26351 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
26352
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026353 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026354 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26355 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026356 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26357 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26358 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26359 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
26360
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026361 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026362 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26363 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026364 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26365 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26366 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26367 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
26368
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026369 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026370 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26371 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26372 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26373 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
26374 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26375 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26376 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26377 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
26378
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026379 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026380 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26381 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26382 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26383 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26384 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26385 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26386 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26387 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
26388
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026389 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026390 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26391 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26392 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26393 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
26394 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26395 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26396 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26397 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
26398
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026399 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026400 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26401 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26402 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26403 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
26404 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26405 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26406 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26407 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
26408
Karthikeyan Manic3700752019-03-11 18:33:53 -070026409 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26410 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26411 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26412 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26413 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
26414
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026415 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26416 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
26417
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026418 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26419 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26420 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
26421
26422 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26423 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26424 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
26425
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026426 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26427 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26428 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26429 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026430 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026431 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070026432 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026433 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026434 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
26435 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
26436
26437 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26438 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26439 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26440 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26441 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26442 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26443 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26444 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26445 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26446 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026447 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26448 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026449
26450 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26451 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26452 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26453 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26454
26455 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26456 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26457 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26458 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26459
26460 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26461 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26462 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26463 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26464
26465 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26466 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26467 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26468 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26469
26470 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26471 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26472 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26473 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26474
26475 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26476 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26477 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26478 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26479
26480 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26481 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26482 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26483 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26484
Laxminath Kasam38070be2017-08-17 18:21:59 +053026485 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26486 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26487 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26488 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26489 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26490 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26491 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26492 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26493 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26494 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026495 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26496 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070026497
26498 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26499 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26500 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26501 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26502
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026503 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26504 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26505 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26506 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26507
26508 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26509 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26510 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26511 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26512
26513 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26514 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26515 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26516 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26517
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026518 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26519 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26520 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26521 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26522
26523 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26524 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26525 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26526 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080026527
26528 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26529 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26530 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26531 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26532 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26533 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26534 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26535 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26536
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026537 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
26538 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
26539 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
26540 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
26541 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
26542 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
26543 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
26544 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026545 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026546 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026547 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
26548 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
26549 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026550 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
26551 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026552 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026553
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026554 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
26555 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
26556 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026557 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026558 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
26559 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
26560 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
26561 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
26562 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
26563 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
26564 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
26565 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
26566 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
26567 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
26568 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
26569 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026570 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026571 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026572 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026573 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
26574 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
26575 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
26576 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
26577 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
26578 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026579 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
26580 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026581 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026582 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
26583
26584 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
26585 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026586 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026587 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
26588 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
26589 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
26590 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
26591 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
26592 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
26593 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
26594 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
26595 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
26596 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
26597 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
26598 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
26599 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026600 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026601 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026602 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
26603 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
26604 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
26605 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
26606 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
26607 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026608 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
26609 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070026610 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026611 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
26612
26613 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
26614 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026615 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026616 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
26617 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
26618 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
26619 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
26620 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
26621 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
26622 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
26623 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
26624 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
26625 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
26626 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
26627 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026628 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026629 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026630 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026631 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026632 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
26633
26634 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
26635 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
26636 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
26637 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
26638 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
26639 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
26640 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
26641 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
26642 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
26643 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080026644 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
26645 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026646 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
26647 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
26648 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
26649 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
26650 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053026651 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26652 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
26653 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026654 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26655 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
26656 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026657 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26658 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26659 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26660 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26661 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26662 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26663 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26664 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026665 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26666 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026667 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026668 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026669 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026670 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
26671
26672 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26673 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26674 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26675 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26676 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26677 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26678 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26679 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026680 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26681 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026682 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026683 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026684 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026685 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
26686
26687
26688 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26689 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26690 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26691 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26692 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26693 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26694 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26695 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026696 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26697 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026698 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026699 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026700 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026701 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
26702
26703
26704 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26705 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26706 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26707 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26708 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26709 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26710 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26711 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026712 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26713 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026714 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026715 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026716 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026717 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
26718
26719 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26720 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26721 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26722 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26723 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26724 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26725 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26726 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026727 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26728 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026729 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026730 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026731 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026732 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
26733
26734 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26735 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26736 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26737 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26738 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26739 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026740 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26741 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026742 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026743 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026744 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026745 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
26746
26747 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26748 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26749 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26750 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26751 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26752 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026753 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26754 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026755 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026756 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026757 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026758 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
26759
26760 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26761 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26762 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26763 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26764 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26765 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026766 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26767 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026768 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026769 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026770 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026771 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
26772
26773
26774 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
26775 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
26776 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
26777 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
26778 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
26779 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
26780 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
26781 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
26782 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
26783 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
26784 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026785 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026786 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026787 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
26788 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
26789 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
26790 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
26791 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
26792 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
26793
26794 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
26795 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
26796 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
26797 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
26798 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
26799 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
26800 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
26801 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
26802 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
26803 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
26804 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
26805 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080026806 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
26807 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026808 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026809 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080026810 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026811 {"MI2S_RX", NULL, "MI2S_DL_HL"},
26812 {"MI2S_UL_HL", NULL, "MI2S_TX"},
26813 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
26814 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
26815
26816 /* connect to INT4_MI2S_DL_HL since same pcm_id */
26817 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
26818 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
26819 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
26820 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
26821 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
26822 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
26823 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
26824 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
26825 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
26826 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
26827
26828 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
26829 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026830 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
26831 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026832 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
26833 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026834 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
26835 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
26836 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
26837 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
26838 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
26839 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
26840 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
26841 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
26842 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
26843 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
26844
26845 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
26846 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
26847 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
26848 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
26849 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
26850 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
26851 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
26852 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
26853 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
26854 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
26855 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
26856 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
26857 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
26858 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
26859 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
26860 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026861 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026862 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
26863 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
26864 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
26865 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070026866 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026867 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
26868 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
26869 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
26870 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
26871 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
26872 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
26873 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
26874 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026875 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026876 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
26877 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
26878 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
26879 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050026880 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026881 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
26882 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
26883 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
26884 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080026885 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053026886 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
26887 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
26888 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
26889 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080026890 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026891 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
26892 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
26893 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
26894 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
26895 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
26896 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
26897 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
26898 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026899
26900 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26901 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26902 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26903 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26904 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26905 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26906 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26907 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26908 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26909 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26910 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26911 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26912 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26913 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26914 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26915 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026916 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26917 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26918 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26919 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026920 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26921 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26922 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26923 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026924 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
26925
26926 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26927 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26928 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26929 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26930 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26931 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26932 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26933 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26934 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26935 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26936 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26937 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26938 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26939 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26940 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26941 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026942 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26943 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26944 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26945 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026946 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26947 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26948 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26949 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026950 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
26951
26952 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26953 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26954 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26955 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26956 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26957 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26958 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26959 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26960 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26961 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26962 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26963 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26964 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26965 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26966 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26967 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026968 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26969 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26970 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26971 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026972 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26973 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26974 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26975 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026976 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
26977
26978 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26979 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26980 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26981 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26982 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26983 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
26984 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26985 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26986 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26987 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26988 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26989 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26990 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26991 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26992 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26993 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026994 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26995 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26996 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26997 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026998 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26999 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27000 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27001 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027002 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27003
27004 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27005 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27006 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27007 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27008 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27009 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27010 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27011 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27012 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27013 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27014 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27015 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27016 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27017 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27018 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27019 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027020 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27021 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27022 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27023 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027024 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27025 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27026 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27027 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027028 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27029
27030 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27031 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27032 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27033 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27034 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27035 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27036 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27037 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27038 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27039 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27040 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27041 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27042 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27043 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27044 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27045 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027046 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27047 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27048 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27049 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027050 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27051 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27052 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27053 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027054 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27055
27056 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27057 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27058 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27059 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27060 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27061 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27062 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27063 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27064 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27065 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27066 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27067 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27068 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27069 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27070 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27071 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027072 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27073 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27074 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27075 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027076 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27077 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27078 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27079 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027080 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27081
27082 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27083 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27084 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27085 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27086 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27087 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27088 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27089 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27090 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27091 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27092 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27093 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27094 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27095 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27096 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27097 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027098 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27099 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27100 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27101 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027102 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27103 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27104 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27105 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027106 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27107
Derek Chenfdcc0982018-10-02 15:14:03 -070027108 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27109 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27110
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027111 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27112 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27113 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27114 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27115 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27116 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27117 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27118 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27119 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27120 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27121 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27122 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27123 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27124 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27125 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27126 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027127 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27128 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27129 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27130 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027131 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27132 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27133 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27134 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027135 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
27136
27137 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27138 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27139 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27140 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27141 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27142 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27143 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27144 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27145 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27146 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27147 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27148 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27149 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27150 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27151 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27152 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027153 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27154 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27155 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27156 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027157 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27158 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27159 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27160 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027161 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
27162
27163 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27164 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27165 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27166 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27167 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27168 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27169 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27170 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27171 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27172 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27173 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27174 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27175 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27176 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27177 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27178 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027179 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27180 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27181 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27182 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027183 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27184 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27185 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27186 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027187 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
27188
27189 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27190 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27191 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27192 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27193 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27194 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27195 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27196 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27197 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27198 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27199 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27200 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27201 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27202 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27203 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27204 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027205 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27206 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27207 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27208 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027209 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27210 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27211 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27212 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027213 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
27214
27215 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27216 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27217 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27218 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27219 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27220 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27221 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27222 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27223 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27224 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27225 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27226 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27227 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27228 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27229 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27230 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027231 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27232 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27233 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27234 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027235 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27236 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27237 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27238 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027239 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
27240
27241 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27242 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27243 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27244 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27245 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27246 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27247 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27248 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27249 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27250 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27251 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27252 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27253 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27254 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27255 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27256 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027257 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27258 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27259 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27260 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027261 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27262 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27263 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27264 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027265 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
27266
27267 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27268 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27269 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27270 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27271 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27272 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27273 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27274 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27275 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27276 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27277 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27278 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27279 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27280 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27281 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27282 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027283 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27284 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27285 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27286 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027287 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27288 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27289 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27290 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027291 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
27292
27293 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27294 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27295 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27296 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27297 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27298 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27299 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27300 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27301 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27302 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27303 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27304 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27305 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27306 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27307 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27308 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027309 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27310 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27311 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27312 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027313 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27314 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27315 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27316 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027317 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
27318
Derek Chenb9048cb2019-03-07 14:54:13 -050027319 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027320 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027321 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
27322
Rohit Kumara5077932017-09-10 22:05:05 +053027323 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27324 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27325 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27326 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27327 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27328 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27329 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27330 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27331 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27332 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27333 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27334 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27335 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27336 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27337 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27338 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27339 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27340 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27341 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27342 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027343 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27344 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27345 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27346 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027347 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027348
27349 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27350 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27351 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27352 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27353 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27354 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27355 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27356 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27357 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27358 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27359 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27360 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27361 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27362 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27363 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27364 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27365 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27366 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27367 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27368 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027369 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27370 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27371 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27372 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027373 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027374
27375 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27376 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27377 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27378 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27379 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27380 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27381 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27382 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27383 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27384 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27385 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27386 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27387 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27388 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27389 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27390 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27391 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27392 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27393 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27394 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027395 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27396 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27397 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27398 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027399 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027400
27401 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27402 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27403 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27404 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27405 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27406 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27407 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27408 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27409 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27410 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27411 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27412 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27413 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27414 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27415 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27416 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27417 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27418 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27419 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27420 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027421 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27422 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27423 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27424 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027425 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027426
27427 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27428 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080027429 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
27430 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027431
Karthikeyan Manic3700752019-03-11 18:33:53 -070027432 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27433 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27434 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27435 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27436 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27437 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27438 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27439 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27440 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27441 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27442 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27443 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27444 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27445 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27446 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27447 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27448 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27449 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27450 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27451 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27452 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
27453
27454 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27455 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27456 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27457 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27458 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27459 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27460 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27461 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27462 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27463 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27464 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27465 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27466 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27467 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27468 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27469 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27470 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27471 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27472 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27473 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27474 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
27475
27476 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27477 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27478 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27479 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27480 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27481 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27482 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27483 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27484 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27485 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27486 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27487 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27488 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27489 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27490 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27491 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27492 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27493 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27494 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27495 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27496 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
27497
27498 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27499 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27500 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27501 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27502 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27503 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27504 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27505 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27506 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27507 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27508 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27509 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27510 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27511 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27512 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27513 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27514 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27515 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27516 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27517 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27518 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
27519
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027520 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27521 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27522 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27523 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027524 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027525 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027526 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27527 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27528 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27529 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027530 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027531 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27532 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
27533
27534 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27535 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27536 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27537 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027538 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027539 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027540 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27541 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27542 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027543 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027544 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27545 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27546 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
27547
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027548 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27549 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080027550 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027551 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027552 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
27553
27554 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
27555 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027556 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027557 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027558
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027559 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27560 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27561 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27562 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27563 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027564 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027565 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27566 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27567 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27568 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027569 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027570 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027571 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27572 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27573 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27574 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27575 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027576 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027577 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027578 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27579 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
27580 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27581 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27582 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
27583 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
27584 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
27585 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
27586 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
27587 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
27588
27589
27590 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27591 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27592 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27593 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27594 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053027595 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027596 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027597 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
27598
27599 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27600 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27601 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027602 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027603 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
27604
27605 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27606 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27607 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27608 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
27609
27610 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27611 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
27612 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27613 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
27614
Rohit Kumara5077932017-09-10 22:05:05 +053027615 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27616 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
27617 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27618 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
27619
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027620 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27621 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27622 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27623 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27624 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27625 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27626 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27627 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027628 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027629 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027630 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
27631 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27632 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27633 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27634 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27635 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27636 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27637 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27638 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27639 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27640 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
27641
27642 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27643 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27644 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27645 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27646 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27647 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27648 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27649 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27650 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27651 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27652 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27653 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
27654
27655 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27656 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27657 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27658 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27659 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27660 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27661 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27662 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27663 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27664 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27665 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027666 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027667 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
27668
kunleizdf5a00a2017-11-27 15:27:36 +080027669 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27670 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027671 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027672
27673 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27674 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027675 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027676
27677 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27678 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027679 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
27680
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027681 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
27682 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027683 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27684 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27685 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27686 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
27687
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027688 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
27689 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027690 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27691 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27692 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27693 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
27694
27695 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27696 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27697 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27698 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
27699 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27700 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27701 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
27702 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
27703 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27704 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
27705 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
27706 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
27707 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
27708
27709 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27710 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27711 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27712 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27713 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027714 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027715 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27716 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27717 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27718 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27719 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27720 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27721 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27722 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
27723
27724 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27725 {"HDMI", NULL, "HDMI_RX Port Mixer"},
27726
27727 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27728 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
27729
Karthikeyan Mani57550082018-05-03 18:43:58 -070027730 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
27731 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
27732
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027733 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27734 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
27735
27736 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27737 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27738 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
27739
27740 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27741 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27742 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27743 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027744 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027745 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027746 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27747 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27748 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27749 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027750 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027751 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
27752
27753 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27754 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27755 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27756 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027757 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027758 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027759 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27760 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27761 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027762 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027763 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
27764
27765 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27766 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27767 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27768 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027769 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027770 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027771 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27772 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27773 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
27774
27775 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27776 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27777 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27778 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027779 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027780 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027781 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27782 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27783 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27784 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27785 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
27786
Rohit Kumara5077932017-09-10 22:05:05 +053027787 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27788 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27789 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27790 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27791 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027792 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027793 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27794 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27795 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
27796
Karthikeyan Manic3700752019-03-11 18:33:53 -070027797 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27798 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27799 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27800 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27801 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
27802 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27803 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27804 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
27805
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027806 /* Backend Enablement */
27807
27808 {"BE_OUT", NULL, "PRI_I2S_RX"},
27809 {"BE_OUT", NULL, "SEC_I2S_RX"},
27810 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
27811 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
27812 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
27813 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27814 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
27815 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
27816 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
27817 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
27818 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027819 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027820 {"BE_OUT", NULL, "USB_AUDIO_RX"},
27821 {"BE_OUT", NULL, "HDMI"},
27822 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070027823 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020027824 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
27825 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027826 {"BE_OUT", NULL, "MI2S_RX"},
27827 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
27828 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027829 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027830 {"BE_OUT", NULL, "TERT_MI2S_RX"},
27831 {"BE_OUT", NULL, "SEC_MI2S_RX"},
27832 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
27833 {"BE_OUT", NULL, "PRI_MI2S_RX"},
27834 {"BE_OUT", NULL, "INT0_MI2S_RX"},
27835 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027836 {"BE_OUT", NULL, "INT2_MI2S_RX"},
27837 {"BE_OUT", NULL, "INT3_MI2S_RX"},
27838 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027839 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
27840 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
27841 {"BE_OUT", NULL, "INT_FM_RX"},
27842 {"BE_OUT", NULL, "PCM_RX"},
27843 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27844 {"BE_OUT", NULL, "AUX_PCM_RX"},
27845 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
27846 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
27847 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027848 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027849 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027850 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
27851 {"BE_OUT", NULL, "INT_FM_RX"},
27852 {"BE_OUT", NULL, "PCM_RX"},
27853 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27854 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
27855 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
27856 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
27857 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
27858 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
27859 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
27860 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
27861 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
27862 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
27863 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027864 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027865 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
27866 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
27867 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
27868 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
27869 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
27870 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
27871 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
27872 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
27873 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027874 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027875 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
27876 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
27877 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
27878 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027879 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027880 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
27881 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
27882 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
27883 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027884 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
27885 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053027886 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
27887 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
27888 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
27889 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
27890 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
27891 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
27892 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
27893 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027894
27895 {"PRI_I2S_TX", NULL, "BE_IN"},
27896 {"MI2S_TX", NULL, "BE_IN"},
27897 {"QUAT_MI2S_TX", NULL, "BE_IN"},
27898 {"QUIN_MI2S_TX", NULL, "BE_IN"},
27899 {"PRI_MI2S_TX", NULL, "BE_IN"},
27900 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027901 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027902 {"INT2_MI2S_TX", NULL, "BE_IN"},
27903 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053027904 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027905 {"INT5_MI2S_TX", NULL, "BE_IN"},
27906 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027907 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027908 {"SLIMBUS_0_TX", NULL, "BE_IN" },
27909 {"SLIMBUS_1_TX", NULL, "BE_IN" },
27910 {"SLIMBUS_3_TX", NULL, "BE_IN" },
27911 {"SLIMBUS_4_TX", NULL, "BE_IN" },
27912 {"SLIMBUS_5_TX", NULL, "BE_IN" },
27913 {"SLIMBUS_6_TX", NULL, "BE_IN" },
27914 {"SLIMBUS_7_TX", NULL, "BE_IN" },
27915 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053027916 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027917 {"USB_AUDIO_TX", NULL, "BE_IN" },
27918 {"INT_BT_SCO_TX", NULL, "BE_IN"},
27919 {"INT_FM_TX", NULL, "BE_IN"},
27920 {"PCM_TX", NULL, "BE_IN"},
27921 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
27922 {"BE_OUT", NULL, "STUB_RX"},
27923 {"STUB_TX", NULL, "BE_IN"},
27924 {"STUB_1_TX", NULL, "BE_IN"},
27925 {"BE_OUT", NULL, "AUX_PCM_RX"},
27926 {"AUX_PCM_TX", NULL, "BE_IN"},
27927 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
27928 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
27929 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053027930 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027931 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027932 {"INCALL_RECORD_TX", NULL, "BE_IN"},
27933 {"INCALL_RECORD_RX", NULL, "BE_IN"},
27934 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
27935 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027936 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
27937 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027938 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
27939 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
27940 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
27941 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
27942 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027943 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
27944 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027945 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
27946 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
27947 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
27948 {"PRI_TDM_TX_0", NULL, "BE_IN"},
27949 {"PRI_TDM_TX_1", NULL, "BE_IN"},
27950 {"PRI_TDM_TX_2", NULL, "BE_IN"},
27951 {"PRI_TDM_TX_3", NULL, "BE_IN"},
27952 {"SEC_TDM_TX_0", NULL, "BE_IN"},
27953 {"SEC_TDM_TX_1", NULL, "BE_IN"},
27954 {"SEC_TDM_TX_2", NULL, "BE_IN"},
27955 {"SEC_TDM_TX_3", NULL, "BE_IN"},
27956 {"TERT_TDM_TX_0", NULL, "BE_IN"},
27957 {"TERT_TDM_TX_1", NULL, "BE_IN"},
27958 {"TERT_TDM_TX_2", NULL, "BE_IN"},
27959 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027960 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027961 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
27962 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
27963 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
27964 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027965 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053027966 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053027967 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
27968 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
27969 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
27970 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080027971 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027972 {"SEN_TDM_TX_0", NULL, "BE_IN"},
27973 {"SEN_TDM_TX_1", NULL, "BE_IN"},
27974 {"SEN_TDM_TX_2", NULL, "BE_IN"},
27975 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053027976 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
27977 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
27978 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
27979 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
27980 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027981 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053027982 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
27983 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
27984 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
27985 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
27986 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
27987 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020027988 {"PRI_SPDIF_TX", NULL, "BE_IN"},
27989 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027990};
27991
27992static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
27993 struct snd_pcm_hw_params *params)
27994{
27995 struct snd_soc_pcm_runtime *rtd = substream->private_data;
27996 unsigned int be_id = rtd->dai_link->id;
27997
27998 if (be_id >= MSM_BACKEND_DAI_MAX) {
27999 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28000 return -EINVAL;
28001 }
28002
28003 mutex_lock(&routing_lock);
28004 msm_bedais[be_id].sample_rate = params_rate(params);
28005 msm_bedais[be_id].channel = params_channels(params);
28006 msm_bedais[be_id].format = params_format(params);
28007 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28008 __func__, msm_bedais[be_id].sample_rate,
28009 msm_bedais[be_id].format, be_id);
28010 mutex_unlock(&routing_lock);
28011 return 0;
28012}
28013
28014static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28015{
28016 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28017 unsigned int be_id = rtd->dai_link->id;
28018 int i, session_type, path_type, topology;
28019 struct msm_pcm_routing_bdai_data *bedai;
28020 struct msm_pcm_routing_fdai_data *fdai;
28021
28022 pr_debug("%s: substream->pcm->id:%s\n",
28023 __func__, substream->pcm->id);
28024
28025 if (be_id >= MSM_BACKEND_DAI_MAX) {
28026 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28027 return -EINVAL;
28028 }
28029
28030 bedai = &msm_bedais[be_id];
28031 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28032 0 : 1);
28033 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28034 path_type = ADM_PATH_PLAYBACK;
28035 else
28036 path_type = ADM_PATH_LIVE_REC;
28037
28038 mutex_lock(&routing_lock);
28039 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28040 if (!is_mm_lsm_fe_id(i))
28041 continue;
28042 fdai = &fe_dai_map[i][session_type];
28043 if (fdai->strm_id != INVALID_SESSION) {
28044 int idx;
28045 int port_id;
28046 unsigned long copp =
28047 session_copp_map[i][session_type][be_id];
28048 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28049 if (test_bit(idx, &copp))
28050 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028051
28052 if (idx >= MAX_COPPS_PER_PORT) {
28053 pr_debug("%s: copp idx is invalid, exiting\n",
28054 __func__);
28055 continue;
28056 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028057 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028058 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028059 topology = adm_get_topology_for_port_copp_idx(port_id,
28060 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028061 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028062 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028063 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28064 __func__, copp, i, session_type, be_id,
28065 topology);
28066 clear_bit(idx,
28067 &session_copp_map[i][session_type][be_id]);
28068 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028069 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028070 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028071 topology);
28072 }
28073 }
28074
28075 bedai->active = 0;
28076 bedai->sample_rate = 0;
28077 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028078 mutex_unlock(&routing_lock);
28079
28080 return 0;
28081}
28082
28083static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28084{
28085 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28086 unsigned int be_id = rtd->dai_link->id;
28087 int i, path_type, topology;
28088 int session_type = INVALID_SESSION;
28089 struct msm_pcm_routing_bdai_data *bedai;
28090 u32 channels, sample_rate;
28091 uint16_t bits_per_sample = 16, voc_path_type;
28092 struct msm_pcm_routing_fdai_data *fdai;
28093 u32 session_id;
28094 struct media_format_info voc_be_media_format;
28095 bool is_lsm;
28096
28097 pr_debug("%s: substream->pcm->id:%s\n",
28098 __func__, substream->pcm->id);
28099
28100 if (be_id >= MSM_BACKEND_DAI_MAX) {
28101 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28102 return -EINVAL;
28103 }
28104
28105 bedai = &msm_bedais[be_id];
28106
28107 mutex_lock(&routing_lock);
28108 if (bedai->active == 1)
28109 goto done; /* Ignore prepare if back-end already active */
28110
28111 /* AFE port is not active at this point. However, still
28112 * go ahead setting active flag under the notion that
28113 * QDSP6 is able to handle ADM starting before AFE port
28114 * is started.
28115 */
28116 bedai->active = 1;
28117
28118 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28119 if (!(is_mm_lsm_fe_id(i) &&
28120 route_check_fe_id_adm_support(i)))
28121 continue;
28122
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028123 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
28124 SESSION_TYPE_RX : SESSION_TYPE_TX;
28125 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028126 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028127 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028128 path_type = ADM_PATH_COMPRESSED_RX;
28129 else
28130 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028131 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028132 if ((fdai->passthr_mode != LEGACY_PCM) &&
28133 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020028134 path_type = ADM_PATH_COMPRESSED_TX;
28135 else
28136 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028137 }
28138
28139 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
28140 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028141 if (fdai->strm_id != INVALID_SESSION) {
28142 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053028143 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028144
28145 if (session_type == SESSION_TYPE_TX &&
28146 fdai->be_srate &&
28147 (fdai->be_srate != bedai->sample_rate)) {
28148 pr_debug("%s: flush strm %d diff BE rates\n",
28149 __func__,
28150 fdai->strm_id);
28151
28152 if (fdai->event_info.event_func)
28153 fdai->event_info.event_func(
28154 MSM_PCM_RT_EVT_BUF_RECFG,
28155 fdai->event_info.priv_data);
28156 fdai->be_srate = 0; /* might not need it */
28157 }
28158 bits_per_sample = msm_routing_get_bit_width(
28159 bedai->format);
28160
28161 app_type =
28162 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
28163 if (app_type && is_lsm) {
28164 app_type_idx =
28165 msm_pcm_routing_get_lsm_app_type_idx(app_type);
28166 sample_rate =
28167 fe_dai_app_type_cfg[i][session_type][be_id]
28168 .sample_rate;
28169 bits_per_sample =
28170 lsm_app_type_cfg[app_type_idx].bit_width;
28171 } else if (app_type) {
28172 app_type_idx =
28173 msm_pcm_routing_get_app_type_idx(app_type);
28174 sample_rate =
28175 fe_dai_app_type_cfg[i][session_type]
28176 [be_id].sample_rate;
28177 bits_per_sample =
28178 app_type_cfg[app_type_idx].bit_width;
28179 } else
28180 sample_rate = bedai->sample_rate;
28181 /*
28182 * check if ADM needs to be configured with different
28183 * channel mapping than backend
28184 */
28185 if (!bedai->adm_override_ch)
28186 channels = bedai->channel;
28187 else
28188 channels = bedai->adm_override_ch;
28189 acdb_dev_id =
28190 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
28191 topology = msm_routing_get_adm_topology(i, session_type,
28192 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020028193
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028194 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
28195 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
28196 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020028197 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
28198
Surendar Karkae7507512018-07-20 15:46:54 +053028199 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028200 sample_rate, channels, topology,
28201 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053028202 app_type, acdb_dev_id,
28203 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028204 if ((copp_idx < 0) ||
28205 (copp_idx >= MAX_COPPS_PER_PORT)) {
28206 pr_err("%s: adm open failed\n", __func__);
28207 mutex_unlock(&routing_lock);
28208 return -EINVAL;
28209 }
28210 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
28211 __func__, i, session_type, be_id);
28212 set_bit(copp_idx,
28213 &session_copp_map[i][session_type][be_id]);
28214
28215 if (msm_is_resample_needed(
28216 sample_rate,
28217 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053028218 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028219 bedai->sample_rate);
28220
28221 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028222 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028223 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028224 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028225 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028226 topology, channels);
28227 }
28228 }
28229
28230 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28231 session_id = msm_pcm_routing_get_voc_sessionid(i);
28232 if (session_id) {
28233 pr_debug("%s voice session_id: 0x%x\n", __func__,
28234 session_id);
28235
28236 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28237 voc_path_type = RX_PATH;
28238 else
28239 voc_path_type = TX_PATH;
28240
28241 voc_set_route_flag(session_id, voc_path_type, 1);
28242
28243 memset(&voc_be_media_format, 0,
28244 sizeof(struct media_format_info));
28245
28246 voc_be_media_format.port_id = bedai->port_id;
28247 voc_be_media_format.num_channels = bedai->channel;
28248 voc_be_media_format.sample_rate = bedai->sample_rate;
28249 voc_be_media_format.bits_per_sample = bedai->format;
28250 /* Defaulting this to 1 for voice call usecases */
28251 voc_be_media_format.channel_mapping[0] = 1;
28252
28253 voc_set_device_config(session_id, voc_path_type,
28254 &voc_be_media_format);
28255
28256 if (voc_get_route_flag(session_id, RX_PATH) &&
28257 voc_get_route_flag(session_id, TX_PATH))
28258 voc_enable_device(session_id);
28259 }
28260 }
28261
28262 /* Check if backend is an external ec ref port and set as needed */
28263 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
28264
28265 memset(&voc_be_media_format, 0,
28266 sizeof(struct media_format_info));
28267
28268 /* Get format info for ec ref port from msm_bedais[] */
28269 voc_be_media_format.port_id = bedai->port_id;
28270 voc_be_media_format.num_channels = bedai->channel;
28271 voc_be_media_format.bits_per_sample = bedai->format;
28272 voc_be_media_format.sample_rate = bedai->sample_rate;
28273 /* Defaulting this to 1 for voice call usecases */
28274 voc_be_media_format.channel_mapping[0] = 1;
28275 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
28276 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
28277 __func__, voc_be_media_format.port_id,
28278 voc_be_media_format.num_channels,
28279 voc_be_media_format.bits_per_sample,
28280 voc_be_media_format.sample_rate);
28281 }
28282
28283done:
28284 mutex_unlock(&routing_lock);
28285
28286 return 0;
28287}
28288
28289static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
28290 int fe_id)
28291{
28292 int index, topo_id, be_idx;
28293 unsigned long pp_config = 0;
28294 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028295 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028296 bool compr_passthr_mode = true;
28297
28298 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
28299
28300 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
28301 pr_err("%s: Device pp params on invalid port %d\n",
28302 __func__, port_id);
28303 return -EINVAL;
28304 }
28305
28306 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28307 if (port_id == msm_bedais[be_idx].port_id)
28308 break;
28309 }
28310
28311 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28312 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28313 return -EINVAL;
28314 }
28315
28316 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28317 if (msm_bedais_pp_params[index].port_id == port_id)
28318 break;
28319 }
28320 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28321 pr_err("%s: Invalid backend pp params index %d\n",
28322 __func__, index);
28323 return -EINVAL;
28324 }
28325
28326 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
28327 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
28328 pr_err("%s: Invalid passthrough topology 0x%x\n",
28329 __func__, topo_id);
28330 return -EINVAL;
28331 }
28332
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028333 session_type =
28334 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28335 SESSION_TYPE_RX : SESSION_TYPE_TX;
28336
28337 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
28338 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028339 compr_passthr_mode = false;
28340
28341 pp_config = msm_bedais_pp_params[index].pp_params_config;
28342 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
28343 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28344 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
28345 mute_on = msm_bedais_pp_params[index].mute_on;
28346 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28347 adm_send_compressed_device_mute(port_id,
28348 copp_idx,
28349 mute_on);
28350 }
28351 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
28352 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28353 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
28354 &pp_config);
28355 latency = msm_bedais_pp_params[index].latency;
28356 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28357 adm_send_compressed_device_latency(port_id,
28358 copp_idx,
28359 latency);
28360 }
28361 return 0;
28362}
28363
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028364static uint32_t msm_routing_get_topology(size_t data_size, void *data)
28365{
28366 uint32_t topology = NULL_COPP_TOPOLOGY;
28367 void *cal_info = NULL;
28368 uint32_t size = 0;
28369
28370 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053028371 if (data_size < sizeof(struct audio_cal_type_basic) +
28372 sizeof(struct audio_cal_info_adm_top)) {
28373 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
28374 goto done;
28375 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028376 size = data_size - sizeof(struct audio_cal_type_basic);
28377 cal_info = kzalloc(size, GFP_KERNEL);
28378
28379 if (!cal_info)
28380 goto done;
28381
28382 memcpy(cal_info,
28383 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
28384
28385 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
28386 kfree(cal_info);
28387 cal_info = NULL;
28388
28389done:
28390 pr_debug("%s: Using topology %d\n", __func__, topology);
28391
28392 return topology;
28393}
28394
28395static void msm_routing_load_topology(size_t data_size, void *data)
28396{
28397 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028398 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028399
28400 topology_id = msm_routing_get_topology(data_size, data);
28401 if (topology_id != NULL_COPP_TOPOLOGY)
28402 ret = q6core_load_unload_topo_modules(topology_id,
28403 CORE_LOAD_TOPOLOGY);
28404 if (ret < 0)
28405 pr_debug("%s %d load topology failed\n",
28406 __func__, topology_id);
28407
28408}
28409
28410static void msm_routing_unload_topology(uint32_t topology_id)
28411{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028412 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028413
28414 if (topology_id != NULL_COPP_TOPOLOGY)
28415 ret = q6core_load_unload_topo_modules(topology_id,
28416 CORE_UNLOAD_TOPOLOGY);
28417 if (ret < 0)
28418 pr_debug("%s %d unload topology failed\n",
28419 __func__, topology_id);
28420
28421}
28422
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028423static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28424 struct snd_ctl_elem_value *ucontrol)
28425{
28426 int pp_id = ucontrol->value.integer.value[0];
28427 int port_id = 0;
28428 int index, be_idx, i, topo_id, idx;
28429 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028430 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028431 bool compr_passthr_mode = true;
28432
28433 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
28434
28435 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28436 port_id = msm_bedais[be_idx].port_id;
28437 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
28438 break;
28439 }
28440
28441 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28442 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28443 return -EINVAL;
28444 }
28445
28446 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28447 if (msm_bedais_pp_params[index].port_id == port_id)
28448 break;
28449 }
28450 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28451 pr_err("%s: Invalid pp params backend index %d\n",
28452 __func__, index);
28453 return -EINVAL;
28454 }
28455
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028456 session_type =
28457 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28458 SESSION_TYPE_RX : SESSION_TYPE_TX;
28459
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028460 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
28461 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028462 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
28463 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028464 compr_passthr_mode = false;
28465
28466 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28467 unsigned long copp =
28468 session_copp_map[i]
28469 [SESSION_TYPE_RX][be_idx];
28470 if (!test_bit(idx, &copp))
28471 continue;
28472 topo_id = adm_get_topology_for_port_copp_idx(port_id,
28473 idx);
28474 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
28475 continue;
28476 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
28477 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028478 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028479 switch (pp_id) {
28480 case ADM_PP_PARAM_MUTE_ID:
28481 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28482 mute = ucontrol->value.integer.value[1] ? true : false;
28483 msm_bedais_pp_params[index].mute_on = mute;
28484 set_bit(ADM_PP_PARAM_MUTE_BIT,
28485 &msm_bedais_pp_params[index].pp_params_config);
28486 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28487 adm_send_compressed_device_mute(port_id,
28488 idx, mute);
28489 break;
28490 case ADM_PP_PARAM_LATENCY_ID:
28491 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28492 msm_bedais_pp_params[index].latency =
28493 ucontrol->value.integer.value[1];
28494 set_bit(ADM_PP_PARAM_LATENCY_BIT,
28495 &msm_bedais_pp_params[index].pp_params_config);
28496 latency = msm_bedais_pp_params[index].latency =
28497 ucontrol->value.integer.value[1];
28498 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28499 adm_send_compressed_device_latency(port_id,
28500 idx, latency);
28501 break;
28502 default:
28503 pr_info("%s, device pp param %d not supported\n",
28504 __func__, pp_id);
28505 break;
28506 }
28507 }
28508 }
28509 return 0;
28510}
28511
28512static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28513 struct snd_ctl_elem_value *ucontrol)
28514{
28515 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
28516 return 0;
28517}
28518
28519static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
28520 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
28521 0, 3, msm_routing_get_device_pp_params_mixer,
28522 msm_routing_put_device_pp_params_mixer),
28523};
28524
28525static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
28526 struct snd_ctl_elem_value *ucontrol)
28527{
28528 ucontrol->value.integer.value[0] =
28529 core_get_license_status(ASM_MEDIA_FMT_APTX);
28530 pr_debug("%s: status %ld\n", __func__,
28531 ucontrol->value.integer.value[0]);
28532 return 0;
28533}
28534
28535static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
28536 struct snd_ctl_elem_value *ucontrol)
28537{
28538 int32_t status = 0;
28539
28540 status = core_set_license(ucontrol->value.integer.value[0],
28541 APTX_CLASSIC_DEC_LICENSE_ID);
28542 pr_debug("%s: status %d\n", __func__, status);
28543 return status;
28544}
28545
28546static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
28547 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
28548 0xFFFF, 0, msm_aptx_dec_license_control_get,
28549 msm_aptx_dec_license_control_put),
28550};
28551
Rohit kumar63ffaa72019-02-01 18:05:33 +053028552static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
28553 struct snd_ctl_elem_value *ucontrol)
28554{
28555 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
28556 uint32_t be_idx = ucontrol->value.integer.value[0];
28557 int i;
28558
28559 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
28560 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
28561 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
28562 pr_err("%s: Invalid channel map %d\n",
28563 __func__, channel_map[i]);
28564 return -EINVAL;
28565 }
28566 }
28567 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
28568
28569 return 0;
28570}
28571
28572static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
28573 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
28574 MSM_BACKEND_DAI_MAX, 0,
28575 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
28576 msm_routing_put_port_chmap_mixer),
28577};
28578
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028579static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
28580 struct snd_ctl_elem_info *uinfo)
28581{
28582 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
28583 uinfo->count = sizeof(be_dai_name_table);
28584 return 0;
28585}
28586
28587static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
28588 unsigned int __user *bytes,
28589 unsigned int size)
28590{
28591 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028592 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028593
28594 if (size < sizeof(be_dai_name_table)) {
28595 pr_err("%s: invalid size %d requested, returning\n",
28596 __func__, size);
28597 ret = -EINVAL;
28598 goto done;
28599 }
28600
28601 /*
28602 * Fill be_dai_name_table from msm_bedais table to reduce code changes
28603 * needed when adding new backends
28604 */
28605 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
28606 be_dai_name_table[i].be_id = i;
28607 strlcpy(be_dai_name_table[i].be_name,
28608 msm_bedais[i].name,
28609 LPASS_BE_NAME_MAX_LENGTH);
28610 }
28611
28612 ret = copy_to_user(bytes, &be_dai_name_table,
28613 sizeof(be_dai_name_table));
28614 if (ret) {
28615 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
28616 ret = -EFAULT;
28617 }
28618
28619done:
28620 return ret;
28621}
28622
28623static const struct snd_kcontrol_new
28624 msm_routing_be_dai_name_table_mixer_controls[] = {
28625 {
28626 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
28627 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
28628 .info = msm_routing_be_dai_name_table_info,
28629 .name = "Backend DAI Name Table",
28630 .tlv.c = snd_soc_bytes_tlv_callback,
28631 .private_value = (unsigned long) &(struct soc_bytes_ext) {
28632 .max = sizeof(be_dai_name_table),
28633 .get = msm_routing_be_dai_name_table_tlv_get,
28634 }
28635 },
28636};
28637
28638static int msm_routing_stereo_channel_reverse_control_get(
28639 struct snd_kcontrol *kcontrol,
28640 struct snd_ctl_elem_value *ucontrol)
28641{
28642 ucontrol->value.integer.value[0] = swap_ch;
28643 pr_debug("%s: Swap channel value: %ld\n", __func__,
28644 ucontrol->value.integer.value[0]);
28645 return 0;
28646}
28647
28648static int msm_routing_stereo_channel_reverse_control_put(
28649 struct snd_kcontrol *kcontrol,
28650 struct snd_ctl_elem_value *ucontrol)
28651{
28652 int i, idx, be_index, port_id;
28653 int ret = 0;
28654 unsigned long copp;
28655
28656 pr_debug("%s Swap channel value:%ld\n", __func__,
28657 ucontrol->value.integer.value[0]);
28658
28659 swap_ch = ucontrol->value.integer.value[0];
28660
28661 mutex_lock(&routing_lock);
28662 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
28663 port_id = msm_bedais[be_index].port_id;
28664 if (!msm_bedais[be_index].active)
28665 continue;
28666
28667 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
28668 MSM_FRONTEND_DAI_MM_SIZE) {
28669 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
28670 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28671 if (!test_bit(idx, &copp))
28672 continue;
28673
28674 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
28675 __func__, port_id, idx);
28676 ret = adm_swap_speaker_channels(
28677 port_id, idx,
28678 msm_bedais[be_index].sample_rate,
28679 swap_ch);
28680 if (ret) {
28681 pr_err("%s:Swap_channel failed, err=%d\n",
28682 __func__, ret);
28683 goto done;
28684 }
28685 }
28686 }
28687 }
28688done:
28689 mutex_unlock(&routing_lock);
28690 return ret;
28691}
28692
28693static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
28694 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
28695 1, 0, msm_routing_stereo_channel_reverse_control_get,
28696 msm_routing_stereo_channel_reverse_control_put),
28697};
28698
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028699static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
28700 struct snd_ctl_elem_info *uinfo)
28701{
28702 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
28703 uinfo->count = 1;
28704 return 0;
28705}
28706
28707static int msm_routing_instance_id_support_put(
28708 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
28709{
28710 bool supported = ucontrol->value.integer.value[0] ? true : false;
28711
28712 q6common_update_instance_id_support(supported);
28713 return 0;
28714}
28715
28716static int msm_routing_instance_id_support_get(
28717 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
28718{
28719 bool supported = false;
28720
28721 supported = q6common_is_instance_id_supported();
28722 ucontrol->value.integer.value[0] = supported ? 1 : 0;
28723
28724 return 0;
28725}
28726
28727static const struct snd_kcontrol_new
28728 msm_routing_feature_support_mixer_controls[] = {
28729 {
28730 .access = SNDRV_CTL_ELEM_ACCESS_READ |
28731 SNDRV_CTL_ELEM_ACCESS_WRITE,
28732 .info = msm_routing_instance_id_support_info,
28733 .name = "Instance ID Support",
28734 .put = msm_routing_instance_id_support_put,
28735 .get = msm_routing_instance_id_support_get,
28736 },
28737};
28738
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028739static const struct snd_pcm_ops msm_routing_pcm_ops = {
28740 .hw_params = msm_pcm_routing_hw_params,
28741 .close = msm_pcm_routing_close,
28742 .prepare = msm_pcm_routing_prepare,
28743};
28744
28745/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080028746static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028747{
Meng Wangee084a02018-09-04 16:11:58 +080028748 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028749 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080028750 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
28751 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080028752 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028753 ARRAY_SIZE(intercon));
28754
Meng Wangee084a02018-09-04 16:11:58 +080028755 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028756
Meng Wangee084a02018-09-04 16:11:58 +080028757 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028758 ARRAY_SIZE(lsm_controls));
28759
Meng Wangee084a02018-09-04 16:11:58 +080028760 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028761 ARRAY_SIZE(aanc_slim_0_rx_mux));
28762
Meng Wangee084a02018-09-04 16:11:58 +080028763 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053028764 ARRAY_SIZE(aanc_noise_level));
28765
Meng Wangee084a02018-09-04 16:11:58 +080028766 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028767 ARRAY_SIZE(msm_voc_session_controls));
28768
Meng Wangee084a02018-09-04 16:11:58 +080028769 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028770 ARRAY_SIZE(app_type_cfg_controls));
28771
Meng Wangee084a02018-09-04 16:11:58 +080028772 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028773 ARRAY_SIZE(lsm_app_type_cfg_controls));
28774
Meng Wangee084a02018-09-04 16:11:58 +080028775 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070028776 ARRAY_SIZE(module_cfg_controls));
28777
Meng Wangee084a02018-09-04 16:11:58 +080028778 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028779 stereo_to_custom_stereo_controls,
28780 ARRAY_SIZE(stereo_to_custom_stereo_controls));
28781
Meng Wangee084a02018-09-04 16:11:58 +080028782 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028783 ARRAY_SIZE(ec_ref_param_controls));
28784
Meng Wangee084a02018-09-04 16:11:58 +080028785 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028786 ARRAY_SIZE(channel_mixer_controls));
28787
Meng Wangee084a02018-09-04 16:11:58 +080028788 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028789
Meng Wangee084a02018-09-04 16:11:58 +080028790 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028791
Meng Wangee084a02018-09-04 16:11:58 +080028792 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028793
Meng Wangee084a02018-09-04 16:11:58 +080028794 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028795 use_ds1_or_ds2_controls,
28796 ARRAY_SIZE(use_ds1_or_ds2_controls));
28797
Meng Wangee084a02018-09-04 16:11:58 +080028798 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028799 device_pp_params_mixer_controls,
28800 ARRAY_SIZE(device_pp_params_mixer_controls));
28801
Meng Wangee084a02018-09-04 16:11:58 +080028802 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028803 msm_routing_be_dai_name_table_mixer_controls,
28804 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
28805
Meng Wangee084a02018-09-04 16:11:58 +080028806 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028807 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080028808 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028809 ARRAY_SIZE(adm_channel_config_controls));
28810
Meng Wangee084a02018-09-04 16:11:58 +080028811 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028812 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080028813 snd_soc_add_component_controls(component,
28814 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028815 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080028816 snd_soc_add_component_controls(
28817 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028818 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053028819 snd_soc_add_component_controls(component,
28820 port_multi_channel_map_mixer_controls,
28821 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028822
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028823 return 0;
28824}
28825
28826int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
28827{
28828 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
28829}
28830
28831void msm_routing_pcm_free(struct snd_pcm *pcm)
28832{
28833 msm_pcm_routing_hwdep_free(pcm);
28834}
28835
Meng Wangee084a02018-09-04 16:11:58 +080028836static struct snd_soc_component_driver msm_soc_routing_component = {
28837 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028838 .ops = &msm_routing_pcm_ops,
28839 .probe = msm_routing_probe,
28840 .pcm_new = msm_routing_pcm_new,
28841 .pcm_free = msm_routing_pcm_free,
28842};
28843
28844static int msm_routing_pcm_probe(struct platform_device *pdev)
28845{
28846
28847 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080028848 return snd_soc_register_component(&pdev->dev,
28849 &msm_soc_routing_component,
28850 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028851}
28852
28853static int msm_routing_pcm_remove(struct platform_device *pdev)
28854{
Meng Wangee084a02018-09-04 16:11:58 +080028855 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028856 return 0;
28857}
28858
28859static const struct of_device_id msm_pcm_routing_dt_match[] = {
28860 {.compatible = "qcom,msm-pcm-routing"},
28861 {}
28862};
28863MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
28864
28865static struct platform_driver msm_routing_pcm_driver = {
28866 .driver = {
28867 .name = "msm-pcm-routing",
28868 .owner = THIS_MODULE,
28869 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080028870 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028871 },
28872 .probe = msm_routing_pcm_probe,
28873 .remove = msm_routing_pcm_remove,
28874};
28875
28876int msm_routing_check_backend_enabled(int fedai_id)
28877{
28878 int i;
28879
28880 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
28881 /* bad ID assigned in machine driver */
28882 pr_err("%s: bad MM ID\n", __func__);
28883 return 0;
28884 }
28885 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
28886 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
28887 return msm_bedais[i].active;
28888 }
28889 return 0;
28890}
28891
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028892static int get_cal_type_index(int32_t cal_type)
28893{
28894 int ret = -EINVAL;
28895
28896 switch (cal_type) {
28897 case ADM_TOPOLOGY_CAL_TYPE:
28898 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
28899 break;
28900 case ADM_LSM_TOPOLOGY_CAL_TYPE:
28901 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
28902 break;
28903 default:
28904 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
28905 }
28906 return ret;
28907}
28908
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028909static int msm_routing_set_cal(int32_t cal_type,
28910 size_t data_size, void *data)
28911{
28912 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028913 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028914 pr_debug("%s\n", __func__);
28915
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028916 cal_index = get_cal_type_index(cal_type);
28917 if (cal_index < 0) {
28918 pr_err("%s: Could not get cal index %d\n",
28919 __func__, cal_index);
28920 ret = -EINVAL;
28921 goto done;
28922 }
28923
28924 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028925 if (ret < 0) {
28926 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
28927 __func__, ret, cal_type);
28928 ret = -EINVAL;
28929 goto done;
28930 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028931 /* Pre-load if it is ADM topology */
28932 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
28933 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
28934 msm_routing_load_topology(data_size, data);
28935 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028936done:
28937 return ret;
28938}
28939
28940static void msm_routing_delete_cal_data(void)
28941{
28942 pr_debug("%s\n", __func__);
28943
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028944 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028945}
28946
28947static int msm_routing_init_cal_data(void)
28948{
28949 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028950 struct cal_type_info cal_type_info[] = {
28951 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028952 {NULL, NULL, NULL,
28953 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028954 {NULL, NULL, cal_utils_match_buf_num} },
28955
28956 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
28957 {NULL, NULL, NULL,
28958 msm_routing_set_cal, NULL, NULL} },
28959 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028960 };
28961 pr_debug("%s\n", __func__);
28962
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053028963 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
28964 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028965 if (ret < 0) {
28966 pr_err("%s: could not create cal type!\n",
28967 __func__);
28968 ret = -EINVAL;
28969 goto err;
28970 }
28971
28972 return ret;
28973err:
28974 msm_routing_delete_cal_data();
28975 return ret;
28976}
28977
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053028978int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028979{
28980 mutex_init(&routing_lock);
28981 if (msm_routing_init_cal_data())
28982 pr_err("%s: could not init cal data!\n", __func__);
28983
28984 afe_set_routing_callback(
28985 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
28986
28987 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
28988 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
28989
28990 return platform_driver_register(&msm_routing_pcm_driver);
28991}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028992
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053028993void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028994{
28995 msm_routing_delete_cal_data();
28996 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
28997 mutex_destroy(&routing_lock);
28998 platform_driver_unregister(&msm_routing_pcm_driver);
28999}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029000
29001MODULE_DESCRIPTION("MSM routing platform driver");
29002MODULE_LICENSE("GPL v2");