blob: a133606b203ea2b4b6d2ac30e0678dbf149ab9bb [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;
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053083static bool hifi_filter_enabled;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053084static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080085static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053086static int msm_ec_ref_port_id;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +053087static int afe_loopback_tx_port_index;
88static int afe_loopback_tx_port_id = -1;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053089
90#define WEIGHT_0_DB 0x4000
91/* all the FEs which can support channel mixer */
92static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053093
94/* all the FES which can support channel mixer for bidirection */
95static struct msm_pcm_channel_mixer
96 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
97
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053098/* input BE for each FE */
99static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
100
101enum {
102 MADNONE,
103 MADAUDIO,
104 MADBEACON,
105 MADULTRASOUND,
106 MADSWAUDIO,
107};
108
109#define ADM_LSM_PORT_INDEX 9
110
111#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
112#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
113#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
114#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
115#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
116#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
117#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
118#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
119#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
120#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530121#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
122#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800123#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530124#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530125#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Guodong Hu395166b2019-10-10 16:56:28 +0800126#define TERT_TDM_TX_TEXT "TERT_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530127
128#define LSM_FUNCTION_TEXT "LSM Function"
129static const char * const lsm_port_text[] = {
130 "None",
131 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
132 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
133 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530134 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Guodong Hu395166b2019-10-10 16:56:28 +0800135 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT,
136 TERT_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530137};
138
139struct msm_pcm_route_bdai_pp_params {
140 u16 port_id; /* AFE port ID */
141 unsigned long pp_params_config;
142 bool mute_on;
143 int latency;
144};
145
146static struct msm_pcm_route_bdai_pp_params
147 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
148 {HDMI_RX, 0, 0, 0},
149 {DISPLAY_PORT_RX, 0, 0, 0},
150};
151
152/*
153 * The be_dai_name_table is passed to HAL so that it can specify the
154 * BE ID for the BE it wants to enable based on the name. Thus there
155 * is a matching table and structure in HAL that need to be updated
156 * if any changes to these are made.
157 */
158struct msm_pcm_route_bdai_name {
159 unsigned int be_id;
160 char be_name[LPASS_BE_NAME_MAX_LENGTH];
161};
162static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
163
164static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
165 int fe_id);
166
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700167static void msm_routing_load_topology(size_t data_size, void *data);
168static void msm_routing_unload_topology(uint32_t topology_id);
169
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530170static int msm_routing_get_bit_width(unsigned int format)
171{
172 int bit_width;
173
174 switch (format) {
175 case SNDRV_PCM_FORMAT_S32_LE:
176 bit_width = 32;
177 break;
178 case SNDRV_PCM_FORMAT_S24_LE:
179 case SNDRV_PCM_FORMAT_S24_3LE:
180 bit_width = 24;
181 break;
182 case SNDRV_PCM_FORMAT_S16_LE:
183 default:
184 bit_width = 16;
185 }
186 return bit_width;
187}
188
189static bool msm_is_resample_needed(int input_sr, int output_sr)
190{
191 bool rc = false;
192
193 if (input_sr != output_sr)
194 rc = true;
195
196 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
197 (rc ? "oh yes" : "not really"),
198 input_sr, output_sr);
199
200 return rc;
201}
202
203static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
204 int channels)
205{
206 int rc = 0;
207
208 switch (topology) {
209 case SRS_TRUMEDIA_TOPOLOGY_ID:
210 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
211 msm_dts_srs_tm_init(port_id, copp_idx);
212 break;
213 case DS2_ADM_COPP_TOPOLOGY_ID:
214 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
215 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
216 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
217 is_custom_stereo_on);
218 if (rc < 0)
219 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
220 __func__, topology, port_id,
221 is_custom_stereo_on, rc);
222 break;
223 case DOLBY_ADM_COPP_TOPOLOGY_ID:
224 if (is_ds2_on) {
225 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
226 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
227 is_custom_stereo_on);
228 if (rc < 0)
229 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
230 __func__, topology, port_id, rc);
231 } else {
232 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
233 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
234 is_custom_stereo_on);
235 if (rc < 0)
236 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
237 __func__, topology, port_id, rc);
238 }
239 break;
240 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
241 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
242 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
243 if (rc < 0)
244 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
245 __func__, topology, port_id, copp_idx, rc);
246 break;
247 default:
248 /* custom topology specific feature param handlers */
249 break;
250 }
251}
252
253static void msm_pcm_routing_deinit_pp(int port_id, int topology)
254{
255 switch (topology) {
256 case SRS_TRUMEDIA_TOPOLOGY_ID:
257 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
258 msm_dts_srs_tm_deinit(port_id);
259 break;
260 case DS2_ADM_COPP_TOPOLOGY_ID:
261 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
262 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
263 msm_ds2_dap_deinit(port_id);
264 break;
265 case DOLBY_ADM_COPP_TOPOLOGY_ID:
266 if (is_ds2_on) {
267 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
268 msm_ds2_dap_deinit(port_id);
269 } else {
270 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
271 msm_dolby_dap_deinit(port_id);
272 }
273 break;
274 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
275 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
276 msm_qti_pp_asphere_deinit(port_id);
277 break;
278 default:
279 /* custom topology specific feature deinit handlers */
280 break;
281 }
282}
283
284static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
285 int path_type, int perf_mode)
286{
287 int itr = 0, rc = 0;
288
289 if ((path_type == ADM_PATH_PLAYBACK) &&
290 (perf_mode == LEGACY_PCM_MODE) &&
291 is_custom_stereo_on) {
292 for (itr = 0; itr < payload.num_copps; itr++) {
293 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
294 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
295 continue;
296 }
297
298 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
299 payload.port_id[itr],
300 payload.copp_idx[itr],
301 payload.session_id,
302 Q14_GAIN_ZERO_POINT_FIVE,
303 Q14_GAIN_ZERO_POINT_FIVE,
304 Q14_GAIN_ZERO_POINT_FIVE,
305 Q14_GAIN_ZERO_POINT_FIVE);
306 if (rc < 0)
307 pr_err("%s: err setting custom stereo\n",
308 __func__);
309 }
310 }
311}
312
313#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
314struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530315 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
316 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
317 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
318 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
319 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
320 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
321 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
322 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
323 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
324 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530327 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530328 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530329 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530330 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530331 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530332 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530333 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530334 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530335 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530336 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530337 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530338 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530339 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530340 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
341 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
342 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
343 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
344 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
345 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
346 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
347 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
348 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
349 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
350 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
351 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
352 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
353 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
354 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
355 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
356 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
357 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
358 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
359 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
360 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
361 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
362 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200385 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530509 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530511 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530513 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530515 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530517 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530519 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530521 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530541 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530543 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530545 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530547 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530549 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530551 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530553 LPASS_BE_QUIN_TDM_TX_7},
Karthikeyan Manic3700752019-03-11 18:33:53 -0700554 { AFE_PORT_ID_SENARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
555 LPASS_BE_SEN_TDM_RX_0},
556 { AFE_PORT_ID_SENARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
557 LPASS_BE_SEN_TDM_TX_0},
558 { AFE_PORT_ID_SENARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
559 LPASS_BE_SEN_TDM_RX_1},
560 { AFE_PORT_ID_SENARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
561 LPASS_BE_SEN_TDM_TX_1},
562 { AFE_PORT_ID_SENARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
563 LPASS_BE_SEN_TDM_RX_2},
564 { AFE_PORT_ID_SENARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
565 LPASS_BE_SEN_TDM_TX_2},
566 { AFE_PORT_ID_SENARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
567 LPASS_BE_SEN_TDM_RX_3},
568 { AFE_PORT_ID_SENARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
569 LPASS_BE_SEN_TDM_TX_3},
570 { AFE_PORT_ID_SENARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
571 LPASS_BE_SEN_TDM_RX_4},
572 { AFE_PORT_ID_SENARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
573 LPASS_BE_SEN_TDM_TX_4},
574 { AFE_PORT_ID_SENARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
575 LPASS_BE_SEN_TDM_RX_5},
576 { AFE_PORT_ID_SENARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
577 LPASS_BE_SEN_TDM_TX_5},
578 { AFE_PORT_ID_SENARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
579 LPASS_BE_SEN_TDM_RX_6},
580 { AFE_PORT_ID_SENARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
581 LPASS_BE_SEN_TDM_TX_6},
582 { AFE_PORT_ID_SENARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
583 LPASS_BE_SEN_TDM_RX_7},
584 { AFE_PORT_ID_SENARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
585 LPASS_BE_SEN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530590 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530591 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530593 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700595 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530597 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530598 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530599 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530600 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530601 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530602 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530603 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530605 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530607 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530609 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530611 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530613 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530615 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530617 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530619 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530621 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530623 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530625 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530627 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530629 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530631 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530633 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530635 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200636 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
637 LPASS_BE_SEN_AUXPCM_RX},
638 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
639 LPASS_BE_SEN_AUXPCM_TX},
640 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
641 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530642 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530643 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530644 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530645 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530646 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530647 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530648 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530649 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530650 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530651 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530652 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530653 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530654 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530655 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800656 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
657 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530658 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530659 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530660 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530661 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530662 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530663 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530664 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530665 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530666 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530667 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530668 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530669 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530670 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530671 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530672 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530673 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530674 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530675 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530676 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530677 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530678 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530679 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530680 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530681 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530682 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530683 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530684 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530685 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530686 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200687 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530688 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200689 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530690 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200691 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530692 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
693 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530694 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Ralf Herz29e07132019-07-26 15:15:21 +0200695 { AFE_PORT_ID_PRIMARY_META_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
696 LPASS_BE_PRI_META_MI2S_RX},
697 { AFE_PORT_ID_SECONDARY_META_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
698 LPASS_BE_SEC_META_MI2S_RX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530699};
700
701/* Track ASM playback & capture sessions of DAI
702 * Track LSM listen sessions
703 */
704static struct msm_pcm_routing_fdai_data
705 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
706 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530709 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530712 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530715 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530718 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530721 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530724 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530727 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530730 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530733 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530736 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530739 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530742 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530745 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530748 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530751 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530754 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530757 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530760 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530763 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700766 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chenb097d922019-07-31 17:28:02 -0700769 /* MULTIMEDIA22 */
770 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
771 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Viraja Kommarajud3478b22019-11-04 20:38:23 +0530772 /* MULTIMEDIA23 */
773 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
774 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530775 /* MULTIMEDIA26 */
776 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
777 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
778 /* MULTIMEDIA27 */
779 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
780 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530781 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530782 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
783 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530784 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530785 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
786 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +0530787 /* MULTIMEDIA30 */
788 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
789 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530790 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530791 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
792 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530793 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530794 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
795 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530796 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530797 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
798 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530799 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530800 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
801 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530802 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530803 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
804 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530805 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530806 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
807 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530808 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530809 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
810 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530811 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530812 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
813 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530814 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530815 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
816 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530817 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530818 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
819 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530820 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530821 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
822 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530823 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530824 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
825 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530826 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530827 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
828 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530829 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530830 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
831 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530832 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530833 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
834 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530835 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530836 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
837 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530838 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530839 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
840 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530841 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530842 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
843 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530844};
845
846static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
847 [MSM_BACKEND_DAI_MAX];
848static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
849static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
850static struct msm_pcm_stream_app_type_cfg
851 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
852
853static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
854
Florian Pfister522073c2018-09-26 15:39:15 +0200855/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530856void msm_pcm_routing_get_bedai_info(int be_idx,
857 struct msm_pcm_routing_bdai_data *be_dai)
858{
859 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
860 memcpy(be_dai, &msm_bedais[be_idx],
861 sizeof(struct msm_pcm_routing_bdai_data));
862}
863
Florian Pfister522073c2018-09-26 15:39:15 +0200864/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530865void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
866 struct msm_pcm_routing_fdai_data *fe_dai)
867{
868 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
869 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
870 sizeof(struct msm_pcm_routing_fdai_data));
871}
872
873void msm_pcm_routing_acquire_lock(void)
874{
875 mutex_lock(&routing_lock);
876}
877
878void msm_pcm_routing_release_lock(void)
879{
880 mutex_unlock(&routing_lock);
881}
882
883static int msm_pcm_routing_get_app_type_idx(int app_type)
884{
885 int idx;
886
887 pr_debug("%s: app_type: %d\n", __func__, app_type);
888 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
889 if (app_type_cfg[idx].app_type == app_type)
890 return idx;
891 }
892 pr_info("%s: App type not available, fallback to default\n", __func__);
893 return 0;
894}
895
896static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
897{
898 int idx;
899
900 pr_debug("%s: app_type: %d\n", __func__, app_type);
901 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
902 if (lsm_app_type_cfg[idx].app_type == app_type)
903 return idx;
904 }
905 pr_debug("%s: App type not available, fallback to default\n", __func__);
906 return 0;
907}
908
Surendar Karkae7507512018-07-20 15:46:54 +0530909static int get_port_id(int port_id)
910{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530911 int ret = port_id;
912
913 if (port_id == AFE_LOOPBACK_TX) {
914 /*
915 * Return afe_loopback_tx_port_id if set. Else return
916 * msm_ec_ref_port_id to maintain backward compatibility.
917 */
918 if (afe_loopback_tx_port_id != -1)
919 ret = afe_loopback_tx_port_id;
920 else
921 ret = msm_ec_ref_port_id;
922 }
923
924 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530925}
926
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530927static bool is_mm_lsm_fe_id(int fe_id)
928{
929 bool rc = true;
930
931 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
932 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
933 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
934 rc = false;
935 }
936 return rc;
937}
938
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700939/*
940 * msm_pcm_routing_send_chmix_cfg:
941 * send the channel mixer command to mix the input channels
942 * into output channels.
943 *
944 * @fe_id: front end id
945 * @ip_channel_cnt: input channel count
946 * @op_channel_cnt: output channel count
947 * @ch_wght_coeff: channel weight co-efficients for channel mixing
948 * @session_type: indicates session is of type TX or RX
949 * @stream_type: indicates either Audio or Listen stream type
950 */
951int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
952 int op_channel_cnt, int *ch_wght_coeff,
953 int session_type, int stream_type)
954{
955
956 int rc = 0, idx = 0;
957 int be_index = 0, port_id;
958 unsigned int session_id = 0;
959
960 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
961 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
962 stream_type);
963 if (!is_mm_lsm_fe_id(fe_id)) {
964 /* bad ID assigned in machine driver */
965 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
966 return -EINVAL;
967 }
968
969 if (ch_wght_coeff == NULL) {
970 pr_err("%s: Null channel weightage coefficients passed\n",
971 __func__);
972 return -EINVAL;
973 }
974
975 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
976 port_id = msm_bedais[be_index].port_id;
977 if (!msm_bedais[be_index].active ||
978 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
979 continue;
980
981 session_id = fe_dai_map[fe_id][session_type].strm_id;
982
983 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
984 unsigned long copp =
985 session_copp_map[fe_id][session_type][be_index];
986 if (!test_bit(idx, &copp))
987 continue;
988 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
989 session_id, ip_channel_cnt,
990 op_channel_cnt, ch_wght_coeff,
991 session_type, stream_type);
992 if (rc < 0)
993 pr_err("%s: err setting channel mix config\n",
994 __func__);
995 }
996 }
997
998 return 0;
999}
1000EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
1001
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301002/**
1003 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
1004 * setting before use case start.
1005 *
1006 * @fe_id: frontend idx
1007 * @type: stream direction type
1008 * @params: parameters of channel mixer setting
1009 *
1010 * Return 0 for success
1011 */
1012int msm_pcm_routing_set_channel_mixer_cfg(
1013 int fe_id, int type,
1014 struct msm_pcm_channel_mixer *params)
1015{
1016 int i, j = 0;
1017
1018 channel_mixer_v2[fe_id][type].enable = params->enable;
1019 channel_mixer_v2[fe_id][type].rule = params->rule;
1020 channel_mixer_v2[fe_id][type].input_channel =
1021 params->input_channel;
1022 channel_mixer_v2[fe_id][type].output_channel =
1023 params->output_channel;
1024 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
1025
1026 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1027 channel_mixer_v2[fe_id][type].in_ch_map[i] =
1028 params->in_ch_map[i];
1029 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1030 channel_mixer_v2[fe_id][type].out_ch_map[i] =
1031 params->out_ch_map[i];
1032
1033 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1034 for (j = 0; j < ADM_MAX_CHANNELS; j++)
1035 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
1036 params->channel_weight[i][j];
1037
1038 channel_mixer_v2[fe_id][type].override_in_ch_map =
1039 params->override_in_ch_map;
1040 channel_mixer_v2[fe_id][type].override_out_ch_map =
1041 params->override_out_ch_map;
1042
1043 return 0;
1044}
1045EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
1046
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301047int msm_pcm_routing_reg_stream_app_type_cfg(
1048 int fedai_id, int session_type, int be_id,
1049 struct msm_pcm_stream_app_type_cfg *cfg_data)
1050{
1051 int ret = 0;
1052
1053 if (cfg_data == NULL) {
1054 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1055 ret = -EINVAL;
1056 goto done;
1057 }
1058
1059 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1060 __func__, fedai_id, session_type, be_id,
1061 cfg_data->app_type, cfg_data->acdb_dev_id,
1062 cfg_data->sample_rate);
1063
1064 if (!is_mm_lsm_fe_id(fedai_id)) {
1065 pr_err("%s: Invalid machine driver ID %d\n",
1066 __func__, fedai_id);
1067 ret = -EINVAL;
1068 goto done;
1069 }
1070 if (session_type != SESSION_TYPE_RX &&
1071 session_type != SESSION_TYPE_TX) {
1072 pr_err("%s: Invalid session type %d\n",
1073 __func__, session_type);
1074 ret = -EINVAL;
1075 goto done;
1076 }
1077 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1078 pr_err("%s: Received out of bounds be_id %d\n",
1079 __func__, be_id);
1080 ret = -EINVAL;
1081 goto done;
1082 }
1083
1084 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1085
1086 /*
1087 * Store the BE ID of the configuration information set as the latest so
1088 * the get mixer control knows what to return.
1089 */
1090 last_be_id_configured[fedai_id][session_type] = be_id;
1091
1092done:
1093 return ret;
1094}
1095EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1096
1097/**
1098 * msm_pcm_routing_get_stream_app_type_cfg
1099 *
1100 * Receives fedai_id, session_type, be_id, and populates app_type,
1101 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1102 * -EINVAL and does not alter passed values.
1103 *
1104 * fedai_id - Passed value, front end ID for which app type config is wanted
1105 * session_type - Passed value, session type for which app type config
1106 * is wanted
1107 * be_id - Returned value, back end device id the app type config data is for
1108 * cfg_data - Returned value, configuration data used by app type config
1109 */
1110int msm_pcm_routing_get_stream_app_type_cfg(
1111 int fedai_id, int session_type, int *bedai_id,
1112 struct msm_pcm_stream_app_type_cfg *cfg_data)
1113{
1114 int be_id;
1115 int ret = 0;
1116
1117 if (bedai_id == NULL) {
1118 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1119 ret = -EINVAL;
1120 goto done;
1121 } else if (cfg_data == NULL) {
1122 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1123 ret = -EINVAL;
1124 goto done;
1125 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1126 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1127 ret = -EINVAL;
1128 goto done;
1129 } else if (session_type != SESSION_TYPE_RX &&
1130 session_type != SESSION_TYPE_TX) {
1131 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1132 ret = -EINVAL;
1133 goto done;
1134 }
1135
1136 be_id = last_be_id_configured[fedai_id][session_type];
1137 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1138 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1139 ret = -EINVAL;
1140 goto done;
1141 }
1142
1143 *bedai_id = be_id;
1144 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1145 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1146 __func__, fedai_id, session_type, *bedai_id,
1147 cfg_data->app_type, cfg_data->acdb_dev_id,
1148 cfg_data->sample_rate);
1149done:
1150 return ret;
1151}
1152EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1153
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301154static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1155 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301156{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301157 struct list_head *ptr, *next;
1158 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301159 pr_debug("%s\n", __func__);
1160
1161 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301162 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301163
1164 cal_block = list_entry(ptr,
1165 struct cal_block_data, list);
1166
Vikram Panduranga770b8382017-09-27 12:17:36 -07001167 if (cal_utils_is_cal_stale(cal_block))
1168 continue;
1169
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301170 if (((struct audio_cal_info_adm_top *)cal_block
1171 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301172 return cal_block;
1173 }
1174 }
1175 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1176 return NULL;
1177}
1178
1179static struct cal_block_data *msm_routing_find_topology(int path,
1180 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301181 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001182 int cal_index,
1183 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301184{
1185 struct list_head *ptr, *next;
1186 struct cal_block_data *cal_block = NULL;
1187 struct audio_cal_info_adm_top *cal_info;
1188
1189 pr_debug("%s\n", __func__);
1190
1191 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301192 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301193
1194 cal_block = list_entry(ptr,
1195 struct cal_block_data, list);
1196
Vikram Panduranga770b8382017-09-27 12:17:36 -07001197 if (cal_utils_is_cal_stale(cal_block))
1198 continue;
1199
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301200 cal_info = (struct audio_cal_info_adm_top *)
1201 cal_block->cal_info;
1202 if ((cal_info->path == path) &&
1203 (cal_info->app_type == app_type) &&
1204 (cal_info->acdb_id == acdb_id)) {
1205 return cal_block;
1206 }
1207 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001208 pr_debug("%s: Can't find topology for path %d, app %d, "
1209 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1210 exact ? "fail" : "defaulting to search by path");
1211 return exact ? NULL : msm_routing_find_topology_by_path(path,
1212 cal_index);
1213}
1214
1215static int msm_routing_find_topology_on_index(int session_type, int app_type,
1216 int acdb_dev_id, int idx,
1217 bool exact)
1218{
1219 int topology = -EINVAL;
1220 struct cal_block_data *cal_block = NULL;
1221
1222 mutex_lock(&cal_data[idx]->lock);
1223 cal_block = msm_routing_find_topology(session_type, app_type,
1224 acdb_dev_id, idx, exact);
1225 if (cal_block != NULL) {
1226 topology = ((struct audio_cal_info_adm_top *)
1227 cal_block->cal_info)->topology;
1228 }
1229 mutex_unlock(&cal_data[idx]->lock);
1230 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301231}
1232
Vikram Panduranga770b8382017-09-27 12:17:36 -07001233/*
1234 * Retrieving cal_block will mark cal_block as stale.
1235 * Hence it cannot be reused or resent unless the flag
1236 * is reset.
1237 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301238static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1239 int be_id)
1240{
1241 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301242 int app_type = 0, acdb_dev_id = 0;
1243
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301244 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1245 __func__, fedai_id, session_type, be_id);
1246
1247 if (cal_data == NULL)
1248 goto done;
1249
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301250 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1251 acdb_dev_id =
1252 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1253
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001254 pr_debug("%s: Check for exact LSM topology\n", __func__);
1255 topology = msm_routing_find_topology_on_index(session_type,
1256 app_type,
1257 acdb_dev_id,
1258 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1259 true /*exact*/);
1260 if (topology < 0) {
1261 pr_debug("%s: Check for compatible topology\n", __func__);
1262 topology = msm_routing_find_topology_on_index(session_type,
1263 app_type,
1264 acdb_dev_id,
1265 ADM_TOPOLOGY_CAL_TYPE_IDX,
1266 false /*exact*/);
1267 if (topology < 0)
1268 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301269 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301270done:
1271 pr_debug("%s: Using topology %d\n", __func__, topology);
1272 return topology;
1273}
1274
1275static uint8_t is_be_dai_extproc(int be_dai)
1276{
1277 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1278 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1279 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1280 return 1;
1281 else
1282 return 0;
1283}
1284
1285static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1286 int path_type, int perf_mode,
1287 uint32_t passthr_mode)
1288{
1289 int i, port_type, j, num_copps = 0;
1290 struct route_payload payload;
1291
1292 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1293 path_type == ADM_PATH_COMPRESSED_RX) ?
1294 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1295
1296 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1297 if (!is_be_dai_extproc(i) &&
1298 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1299 (msm_bedais[i].active) &&
1300 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301301 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301302 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1303 unsigned long copp =
1304 session_copp_map[fedai_id][sess_type][i];
1305 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301306 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301307 payload.copp_idx[num_copps] = j;
1308 payload.app_type[num_copps] =
1309 fe_dai_app_type_cfg
1310 [fedai_id][sess_type][i]
1311 .app_type;
1312 payload.acdb_dev_id[num_copps] =
1313 fe_dai_app_type_cfg
1314 [fedai_id][sess_type][i]
1315 .acdb_dev_id;
1316 payload.sample_rate[num_copps] =
1317 fe_dai_app_type_cfg
1318 [fedai_id][sess_type][i]
1319 .sample_rate;
1320 num_copps++;
1321 }
1322 }
1323 }
1324 }
1325
1326 if (num_copps) {
1327 payload.num_copps = num_copps;
1328 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1329 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1330 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1331 }
1332}
1333
1334void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1335 int stream_type)
1336{
1337 int i, session_type, path_type, port_type;
1338 u32 mode = 0;
1339
1340 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1341 /* bad ID assigned in machine driver */
1342 pr_err("%s: bad MM ID\n", __func__);
1343 return;
1344 }
1345
1346 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1347 session_type = SESSION_TYPE_RX;
1348 path_type = ADM_PATH_PLAYBACK;
1349 port_type = MSM_AFE_PORT_TYPE_RX;
1350 } else {
1351 session_type = SESSION_TYPE_TX;
1352 path_type = ADM_PATH_LIVE_REC;
1353 port_type = MSM_AFE_PORT_TYPE_TX;
1354 }
1355
1356 mutex_lock(&routing_lock);
1357
1358 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1359 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1360 if (!is_be_dai_extproc(i) &&
1361 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1362 (msm_bedais[i].active) &&
1363 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1364 mode = afe_get_port_type(msm_bedais[i].port_id);
1365 adm_connect_afe_port(mode, dspst_id,
1366 msm_bedais[i].port_id);
1367 break;
1368 }
1369 }
1370 mutex_unlock(&routing_lock);
1371}
1372
1373static bool route_check_fe_id_adm_support(int fe_id)
1374{
1375 bool rc = true;
1376
1377 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1378 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1379 /* fe id is listen while port is set to afe */
1380 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1381 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1382 __func__, fe_id, lsm_port_index);
1383 rc = false;
1384 }
1385 }
1386
1387 return rc;
1388}
1389
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001390/*
1391 * msm_pcm_routing_get_pp_ch_cnt:
1392 * Read the processed channel count
1393 *
1394 * @fe_id: Front end ID
1395 * @session_type: Inidicates RX or TX session type
1396 */
1397int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1398{
1399 struct msm_pcm_stream_app_type_cfg cfg_data;
1400 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301401 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001402
1403 memset(&cfg_data, 0, sizeof(cfg_data));
1404
1405 if (!is_mm_lsm_fe_id(fe_id)) {
1406 pr_err("%s: bad MM ID\n", __func__);
1407 return -EINVAL;
1408 }
1409
1410 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1411 &be_id, &cfg_data);
1412 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301413 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001414 return ret;
1415 }
1416
1417 app_type = cfg_data.app_type;
1418 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1419 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1420}
1421EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1422
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301423int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1424 int dspst_id, int stream_type,
1425 uint32_t passthr_mode)
1426{
1427 int i, j, session_type, path_type, port_type, topology;
1428 int num_copps = 0;
1429 struct route_payload payload;
1430 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301431 u16 bit_width = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301432 bool is_lsm;
1433
1434 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1435 __func__, fe_id, perf_mode, dspst_id,
1436 stream_type, passthr_mode);
1437 if (!is_mm_lsm_fe_id(fe_id)) {
1438 /* bad ID assigned in machine driver */
1439 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1440 return -EINVAL;
1441 }
1442
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301443 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1444 session_type = SESSION_TYPE_RX;
1445 if (passthr_mode != LEGACY_PCM)
1446 path_type = ADM_PATH_COMPRESSED_RX;
1447 else
1448 path_type = ADM_PATH_PLAYBACK;
1449 port_type = MSM_AFE_PORT_TYPE_RX;
1450 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1451 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301452 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301453 path_type = ADM_PATH_COMPRESSED_TX;
1454 else
1455 path_type = ADM_PATH_LIVE_REC;
1456 port_type = MSM_AFE_PORT_TYPE_TX;
1457 } else {
1458 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1459 return -EINVAL;
1460 }
1461
1462 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1463 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1464 mutex_lock(&routing_lock);
1465
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301466 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301467 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1468 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1469 if (!route_check_fe_id_adm_support(fe_id)) {
1470 /* ignore adm open if not supported for fe_id */
1471 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1472 mutex_unlock(&routing_lock);
1473 return 0;
1474 }
1475
1476 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301477 /* re-enable EQ if active */
1478 msm_qti_pp_send_eq_values(fe_id);
1479 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301480 if (!is_be_dai_extproc(i) &&
1481 (afe_get_port_type(msm_bedais[i].port_id) ==
1482 port_type) &&
1483 (msm_bedais[i].active) &&
1484 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1485 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301486 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301487
1488 /*
1489 * check if ADM needs to be configured with different
1490 * channel mapping than backend
1491 */
1492 if (!msm_bedais[i].adm_override_ch)
1493 channels = msm_bedais[i].channel;
1494 else
1495 channels = msm_bedais[i].adm_override_ch;
1496
1497 bit_width = msm_routing_get_bit_width(
1498 msm_bedais[i].format);
1499 app_type =
1500 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1501 if (app_type && is_lsm) {
1502 app_type_idx =
1503 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1504 sample_rate =
1505 fe_dai_app_type_cfg[fe_id][session_type][i]
1506 .sample_rate;
1507 bit_width =
1508 lsm_app_type_cfg[app_type_idx].bit_width;
1509 } else if (app_type) {
1510 app_type_idx =
1511 msm_pcm_routing_get_app_type_idx(
1512 app_type);
1513 sample_rate =
1514 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1515 bit_width =
1516 app_type_cfg[app_type_idx].bit_width;
1517 } else {
1518 sample_rate = msm_bedais[i].sample_rate;
1519 }
1520 acdb_dev_id =
1521 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1522 topology = msm_routing_get_adm_topology(fe_id,
1523 session_type,
1524 i);
1525 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1526 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001527 COMPRESSED_PASSTHROUGH_GEN)
1528 || (passthr_mode ==
1529 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301530 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1531 pr_debug("%s: Before adm open topology %d\n", __func__,
1532 topology);
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301533
1534 be_bit_width = msm_routing_get_bit_width(
1535 msm_bedais[i].format);
1536 if (hifi_filter_enabled && (msm_bedais[i].sample_rate
1537 == 384000 || msm_bedais[i].sample_rate ==
1538 352800) && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301539 bit_width = msm_routing_get_bit_width(
1540 SNDRV_PCM_FORMAT_S32_LE);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301541
1542 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301543 adm_open(port_id, path_type, sample_rate,
1544 channels, topology, perf_mode,
1545 bit_width, app_type, acdb_dev_id,
1546 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301547 if ((copp_idx < 0) ||
1548 (copp_idx >= MAX_COPPS_PER_PORT)) {
1549 pr_err("%s:adm open failed coppid:%d\n",
1550 __func__, copp_idx);
1551 mutex_unlock(&routing_lock);
1552 return -EINVAL;
1553 }
1554 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1555 __func__, fe_id, session_type, i);
1556 set_bit(copp_idx,
1557 &session_copp_map[fe_id][session_type][i]);
1558
1559 if (msm_is_resample_needed(
1560 sample_rate,
1561 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301562 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301563 msm_bedais[i].sample_rate);
1564
1565 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1566 unsigned long copp =
1567 session_copp_map[fe_id][session_type][i];
1568 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301569 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301570 payload.copp_idx[num_copps] = j;
1571 payload.app_type[num_copps] =
1572 fe_dai_app_type_cfg
1573 [fe_id][session_type][i]
1574 .app_type;
1575 payload.acdb_dev_id[num_copps] =
1576 fe_dai_app_type_cfg
1577 [fe_id][session_type][i]
1578 .acdb_dev_id;
1579 payload.sample_rate[num_copps] =
1580 fe_dai_app_type_cfg
1581 [fe_id][session_type][i]
1582 .sample_rate;
1583 num_copps++;
1584 }
1585 }
1586 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001587 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301588 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301589 msm_routing_send_device_pp_params(port_id,
1590 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301591 }
1592 }
1593 if (num_copps) {
1594 payload.num_copps = num_copps;
1595 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1596 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1597 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1598 }
1599 mutex_unlock(&routing_lock);
1600 return 0;
1601}
1602
1603static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1604{
1605 u32 session_id;
1606
1607 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301608 case MSM_FRONTEND_DAI_QCHAT:
1609 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1610 break;
1611 case MSM_FRONTEND_DAI_VOIP:
1612 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1613 break;
1614 case MSM_FRONTEND_DAI_VOICEMMODE1:
1615 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1616 break;
1617 case MSM_FRONTEND_DAI_VOICEMMODE2:
1618 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1619 break;
1620 default:
1621 session_id = 0;
1622 }
1623
1624 pr_debug("%s session_id 0x%x", __func__, session_id);
1625 return session_id;
1626}
1627
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301628static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1629 int dspst_id, int stream_type)
1630{
1631 int copp_idx = 0;
1632 int sess_type = 0;
1633 int j = 0, be_id = 0;
1634 int ret = 0;
1635
1636 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1637 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1638 return 0;
1639 }
1640
1641 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1642 sess_type = SESSION_TYPE_RX;
1643 else
1644 sess_type = SESSION_TYPE_TX;
1645
1646 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1647 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1648 __func__, fe_id, sess_type);
1649 return 0;
1650 }
1651
1652 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1653 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1654 channel_mixer_v2[fe_id][sess_type].input_channel;
1655
1656 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1657 __func__, sess_type, fe_id,
1658 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1659 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1660 msm_bedais[be_id].active);
1661
1662 if ((msm_bedais[be_id].active) &&
1663 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1664 unsigned long copp =
1665 session_copp_map[fe_id][sess_type][be_id];
1666 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1667 if (test_bit(j, &copp)) {
1668 copp_idx = j;
1669 break;
1670 }
1671 }
1672
1673 ret = adm_programable_channel_mixer(
1674 msm_bedais[be_id].port_id,
1675 copp_idx, dspst_id, sess_type,
1676 &channel_mixer_v2[fe_id][sess_type], 0);
1677 }
1678
1679 return ret;
1680}
1681
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301682static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1683 int dspst_id, int stream_type)
1684{
1685 int copp_idx = 0;
1686 int sess_type = 0;
1687 int i = 0, j = 0, be_id;
1688 int ret = 0;
1689
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301690 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1691 dspst_id, stream_type);
1692 if (ret) {
1693 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1694 fe_id);
1695 return ret;
1696 }
1697
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301698 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1699 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1700 return 0;
1701 }
1702
1703 if (!(channel_mixer[fe_id].enable)) {
1704 pr_debug("%s: channel mixer not enabled for FE %d\n",
1705 __func__, fe_id);
1706 return 0;
1707 }
1708
1709 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1710 sess_type = SESSION_TYPE_RX;
1711 else
1712 sess_type = SESSION_TYPE_TX;
1713
1714 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1715 ++i) {
1716 be_id = channel_input[fe_id][i] - 1;
1717 channel_mixer[fe_id].input_channels[i] =
1718 msm_bedais[be_id].channel;
1719
1720 if ((msm_bedais[be_id].active) &&
1721 test_bit(fe_id,
1722 &msm_bedais[be_id].fe_sessions[0])) {
1723 unsigned long copp =
1724 session_copp_map[fe_id][sess_type][be_id];
1725 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1726 if (test_bit(j, &copp)) {
1727 copp_idx = j;
1728 break;
1729 }
1730 }
1731
1732 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1733 __func__,
1734 fe_id, be_id, msm_bedais[be_id].channel,
1735 copp_idx);
1736 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001737 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301738 copp_idx, dspst_id, sess_type,
1739 channel_mixer + fe_id, i);
1740 }
1741 }
1742
1743 return ret;
1744}
1745
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301746/**
1747 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1748 * setting during runtime.
1749 *
1750 * @be_id: backend index
1751 * @session_id: session index
1752 * @session_type: session type
1753 * @params: parameters for channel mixer
1754 *
1755 * Retuen: 0 for success, else error
1756 */
1757int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1758 int session_type,
1759 struct msm_pcm_channel_mixer *params)
1760{
1761 int rc = 0;
1762 int port_id, copp_idx = 0;
1763
1764 be_id--;
1765 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1766 pr_err("%s: invalid backend id %d\n", __func__,
1767 be_id);
1768 return -EINVAL;
1769 }
1770
1771 port_id = msm_bedais[be_id].port_id;
1772 copp_idx = adm_get_default_copp_idx(port_id);
1773 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1774 __func__, port_id, copp_idx, session_id);
1775
1776 if ((params->input_channel < 0) ||
1777 (params->input_channel > ADM_MAX_CHANNELS)) {
1778 pr_err("%s: invalid input channel %d\n", __func__,
1779 params->input_channel);
1780 return -EINVAL;
1781 }
1782
1783 if ((params->output_channel < 0) ||
1784 (params->output_channel > ADM_MAX_CHANNELS)) {
1785 pr_err("%s: invalid output channel %d\n", __func__,
1786 params->output_channel);
1787 return -EINVAL;
1788 }
1789
1790 params->input_channels[0] = params->input_channel;
1791
1792 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1793 __func__, session_type,
1794 params->override_in_ch_map,
1795 params->override_out_ch_map,
1796 msm_bedais[be_id].active);
1797
1798 rc = adm_programable_channel_mixer(port_id,
1799 copp_idx,
1800 session_id,
1801 session_type,
1802 params,
1803 0);
1804 if (rc) {
1805 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1806 rc = -EINVAL;
1807 }
1808 return rc;
1809}
1810EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1811
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301812int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1813 int dspst_id, int stream_type)
1814{
1815 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1816 struct route_payload payload;
1817 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301818 uint16_t bits_per_sample = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301819 uint32_t passthr_mode = LEGACY_PCM;
1820 int ret = 0;
1821
1822 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1823 /* bad ID assigned in machine driver */
1824 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1825 return -EINVAL;
1826 }
1827
1828 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1829 session_type = SESSION_TYPE_RX;
1830 path_type = ADM_PATH_PLAYBACK;
1831 port_type = MSM_AFE_PORT_TYPE_RX;
1832 } else {
1833 session_type = SESSION_TYPE_TX;
1834 path_type = ADM_PATH_LIVE_REC;
1835 port_type = MSM_AFE_PORT_TYPE_TX;
1836 }
1837
1838 mutex_lock(&routing_lock);
1839
1840 payload.num_copps = 0; /* only RX needs to use payload */
1841 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1842 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301843 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301844
1845 /* re-enable EQ if active */
1846 msm_qti_pp_send_eq_values(fedai_id);
1847 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1848 if (!is_be_dai_extproc(i) &&
1849 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1850 (msm_bedais[i].active) &&
1851 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1852 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301853 int port_id = get_port_id(msm_bedais[i].port_id);
1854
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301855 /*
1856 * check if ADM needs to be configured with different
1857 * channel mapping than backend
1858 */
1859 if (!msm_bedais[i].adm_override_ch)
1860 channels = msm_bedais[i].channel;
1861 else
1862 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301863
1864 bits_per_sample = msm_routing_get_bit_width(
1865 msm_bedais[i].format);
1866
1867 app_type =
1868 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1869 if (app_type) {
1870 app_type_idx =
1871 msm_pcm_routing_get_app_type_idx(app_type);
1872 sample_rate =
1873 fe_dai_app_type_cfg[fedai_id][session_type][i]
1874 .sample_rate;
1875 bits_per_sample =
1876 app_type_cfg[app_type_idx].bit_width;
1877 } else
1878 sample_rate = msm_bedais[i].sample_rate;
1879
1880 acdb_dev_id =
1881 fe_dai_app_type_cfg[fedai_id][session_type][i]
1882 .acdb_dev_id;
1883 topology = msm_routing_get_adm_topology(fedai_id,
1884 session_type,
1885 i);
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301886 be_bit_width = msm_routing_get_bit_width(
1887 msm_bedais[i].format);
1888
1889 if (hifi_filter_enabled && (msm_bedais[i].sample_rate ==
1890 384000 ||msm_bedais[i].sample_rate == 352800)
1891 && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301892 bits_per_sample = msm_routing_get_bit_width(
1893 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05301894 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301895 sample_rate, channels, topology,
1896 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301897 app_type, acdb_dev_id,
1898 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301899 if ((copp_idx < 0) ||
1900 (copp_idx >= MAX_COPPS_PER_PORT)) {
1901 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001902 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301903 mutex_unlock(&routing_lock);
1904 return -EINVAL;
1905 }
1906 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1907 __func__, fedai_id, session_type, i);
1908 set_bit(copp_idx,
1909 &session_copp_map[fedai_id][session_type][i]);
1910
1911 if (msm_is_resample_needed(
1912 sample_rate,
1913 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301914 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301915 msm_bedais[i].sample_rate);
1916
1917 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1918 unsigned long copp =
1919 session_copp_map[fedai_id][session_type][i];
1920 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301921 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301922 payload.copp_idx[num_copps] = j;
1923 payload.app_type[num_copps] =
1924 fe_dai_app_type_cfg
1925 [fedai_id][session_type]
1926 [i].app_type;
1927 payload.acdb_dev_id[num_copps] =
1928 fe_dai_app_type_cfg
1929 [fedai_id][session_type]
1930 [i].acdb_dev_id;
1931 payload.sample_rate[num_copps] =
1932 fe_dai_app_type_cfg
1933 [fedai_id][session_type]
1934 [i].sample_rate;
1935 num_copps++;
1936 }
1937 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301938 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301939 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1940 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301941 }
1942 }
1943 if (num_copps) {
1944 payload.num_copps = num_copps;
1945 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1946 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1947 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1948 }
1949
1950 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1951 dspst_id, stream_type);
1952 mutex_unlock(&routing_lock);
1953 return ret;
1954}
1955
1956int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1957 int dspst_id, int stream_type,
1958 struct msm_pcm_routing_evt event_info)
1959{
1960 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1961 stream_type)) {
1962 pr_err("%s: failed to reg phy stream\n", __func__);
1963 return -EINVAL;
1964 }
1965
1966 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1967 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1968 else
1969 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1970 return 0;
1971}
1972
1973void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1974{
Surendar Karkae7507512018-07-20 15:46:54 +05301975 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301976 struct msm_pcm_routing_fdai_data *fdai;
1977
1978 if (!is_mm_lsm_fe_id(fedai_id)) {
1979 /* bad ID assigned in machine driver */
1980 pr_err("%s: bad MM ID\n", __func__);
1981 return;
1982 }
1983
1984 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1985 port_type = MSM_AFE_PORT_TYPE_RX;
1986 session_type = SESSION_TYPE_RX;
1987 path_type = ADM_PATH_PLAYBACK;
1988 } else {
1989 port_type = MSM_AFE_PORT_TYPE_TX;
1990 session_type = SESSION_TYPE_TX;
1991 path_type = ADM_PATH_LIVE_REC;
1992 }
1993
1994 mutex_lock(&routing_lock);
1995 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1996 if (!is_be_dai_extproc(i) &&
1997 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1998 (msm_bedais[i].active) &&
1999 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
2000 int idx;
2001 unsigned long copp =
2002 session_copp_map[fedai_id][session_type][i];
2003 fdai = &fe_dai_map[fedai_id][session_type];
2004
2005 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2006 if (test_bit(idx, &copp))
2007 break;
2008
2009 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
2010 pr_debug("%s: copp idx is invalid, exiting\n",
2011 __func__);
2012 continue;
2013 }
Surendar Karkae7507512018-07-20 15:46:54 +05302014 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302015 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05302016 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002017 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302018 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302019 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
2020 __func__, copp, fedai_id, session_type, i);
2021 clear_bit(idx,
2022 &session_copp_map[fedai_id][session_type][i]);
2023 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2024 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2025 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302026 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302027 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302028 }
2029 }
2030
2031 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2032 fe_dai_map[fedai_id][session_type].be_srate = 0;
2033 mutex_unlock(&routing_lock);
2034}
2035
2036/* Check if FE/BE route is set */
2037static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2038{
2039 bool rc = false;
2040
2041 if (!is_mm_lsm_fe_id(fe_id)) {
2042 /* recheck FE ID in the mixer control defined in this file */
2043 pr_err("%s: bad MM ID\n", __func__);
2044 return rc;
2045 }
2046
2047 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2048 rc = true;
2049
2050 return rc;
2051}
2052
2053static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2054{
2055 int session_type, path_type, topology;
2056 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05302057 uint16_t bits_per_sample = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302058 struct msm_pcm_routing_fdai_data *fdai;
2059 uint32_t passthr_mode;
2060 bool is_lsm;
2061
2062 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2063
Jhansi Konathala8cf03d42019-08-20 19:27:39 +05302064 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2065 afe_get_port_type(msm_bedais[reg].port_id) ==
2066 MSM_AFE_PORT_TYPE_RX) {
2067 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2068 __func__, set, msm_bedais[reg].port_id);
2069 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2070 } else if (!is_mm_lsm_fe_id(val)) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302071 /* recheck FE ID in the mixer control defined in this file */
2072 pr_err("%s: bad MM ID\n", __func__);
2073 return;
2074 }
2075
2076 if (!route_check_fe_id_adm_support(val)) {
2077 /* ignore adm open if not supported for fe_id */
2078 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002079 if (set)
2080 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2081 else
2082 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302083 return;
2084 }
2085
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302086 session_type =
2087 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2088 SESSION_TYPE_RX : SESSION_TYPE_TX;
2089 fdai = &fe_dai_map[val][session_type];
2090 passthr_mode = fdai->passthr_mode;
2091 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302092 if (passthr_mode != LEGACY_PCM)
2093 path_type = ADM_PATH_COMPRESSED_RX;
2094 else
2095 path_type = ADM_PATH_PLAYBACK;
2096 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002097 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302098 path_type = ADM_PATH_COMPRESSED_TX;
2099 else
2100 path_type = ADM_PATH_LIVE_REC;
2101 }
2102 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2103 (val <= MSM_FRONTEND_DAI_LSM8);
2104
2105 mutex_lock(&routing_lock);
2106 if (set) {
2107 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2108 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2109 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2110 voc_start_playback(set, msm_bedais[reg].port_id);
2111
2112 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302113 if (msm_bedais[reg].active && fdai->strm_id !=
2114 INVALID_SESSION) {
2115 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302116 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302117 /*
2118 * check if ADM needs to be configured with different
2119 * channel mapping than backend
2120 */
2121 if (!msm_bedais[reg].adm_override_ch)
2122 channels = msm_bedais[reg].channel;
2123 else
2124 channels = msm_bedais[reg].adm_override_ch;
2125 if (session_type == SESSION_TYPE_TX &&
2126 fdai->be_srate &&
2127 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2128 pr_debug("%s: flush strm %d diff BE rates\n",
2129 __func__, fdai->strm_id);
2130
2131 if (fdai->event_info.event_func)
2132 fdai->event_info.event_func(
2133 MSM_PCM_RT_EVT_BUF_RECFG,
2134 fdai->event_info.priv_data);
2135 fdai->be_srate = 0; /* might not need it */
2136 }
2137
2138 bits_per_sample = msm_routing_get_bit_width(
2139 msm_bedais[reg].format);
2140
2141 app_type =
2142 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2143 if (app_type && is_lsm) {
2144 app_type_idx =
2145 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2146 sample_rate =
2147 fe_dai_app_type_cfg[val][session_type][reg]
2148 .sample_rate;
2149 bits_per_sample =
2150 lsm_app_type_cfg[app_type_idx].bit_width;
2151 } else if (app_type) {
2152 app_type_idx =
2153 msm_pcm_routing_get_app_type_idx(app_type);
2154 sample_rate =
2155 fe_dai_app_type_cfg[val][session_type][reg]
2156 .sample_rate;
2157 bits_per_sample =
2158 app_type_cfg[app_type_idx].bit_width;
2159 } else
2160 sample_rate = msm_bedais[reg].sample_rate;
2161
2162 topology = msm_routing_get_adm_topology(val,
2163 session_type,
2164 reg);
2165 acdb_dev_id =
2166 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05302167
2168 be_bit_width = msm_routing_get_bit_width(
2169 msm_bedais[reg].format);
2170 if (hifi_filter_enabled && (msm_bedais[reg].sample_rate
2171 == 384000 ||msm_bedais[reg].sample_rate ==
2172 352800) && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05302173 bits_per_sample = msm_routing_get_bit_width(
2174 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05302175 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302176 sample_rate, channels, topology,
2177 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302178 app_type, acdb_dev_id,
2179 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302180 if ((copp_idx < 0) ||
2181 (copp_idx >= MAX_COPPS_PER_PORT)) {
2182 pr_err("%s: adm open failed\n", __func__);
2183 mutex_unlock(&routing_lock);
2184 return;
2185 }
2186 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2187 __func__, val, session_type, reg);
2188 set_bit(copp_idx,
2189 &session_copp_map[val][session_type][reg]);
2190
2191 if (msm_is_resample_needed(
2192 sample_rate,
2193 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302194 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302195 msm_bedais[reg].sample_rate);
2196
2197 if (session_type == SESSION_TYPE_RX &&
2198 fdai->event_info.event_func)
2199 fdai->event_info.event_func(
2200 MSM_PCM_RT_EVT_DEVSWITCH,
2201 fdai->event_info.priv_data);
2202
2203 msm_pcm_routing_build_matrix(val, session_type,
2204 path_type,
2205 fdai->perf_mode,
2206 passthr_mode);
2207 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2208 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302209 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2210 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302211 }
2212 } else {
2213 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2214 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2215 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2216 voc_start_playback(set, msm_bedais[reg].port_id);
2217 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302218 if (msm_bedais[reg].active && fdai->strm_id !=
2219 INVALID_SESSION) {
2220 int idx;
2221 int port_id;
2222 unsigned long copp =
2223 session_copp_map[val][session_type][reg];
2224 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2225 if (test_bit(idx, &copp))
2226 break;
2227
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002228 if (idx >= MAX_COPPS_PER_PORT) {
2229 pr_debug("%s: copp idx is invalid, exiting\n",
2230 __func__);
2231 mutex_unlock(&routing_lock);
2232 return;
2233 }
Surendar Karkae7507512018-07-20 15:46:54 +05302234 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302235 topology = adm_get_topology_for_port_copp_idx(port_id,
2236 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002237 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302238 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302239 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2240 __func__, copp, val, session_type, reg,
2241 topology);
2242 clear_bit(idx,
2243 &session_copp_map[val][session_type][reg]);
2244 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2245 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2246 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2247 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302248 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302249 msm_pcm_routing_build_matrix(val, session_type,
2250 path_type,
2251 fdai->perf_mode,
2252 passthr_mode);
2253 }
2254 }
2255 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2256 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2257 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2258
2259 mutex_unlock(&routing_lock);
2260}
2261
2262static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2263 struct snd_ctl_elem_value *ucontrol)
2264{
2265 struct soc_mixer_control *mc =
2266 (struct soc_mixer_control *)kcontrol->private_value;
2267
Meng Wang05d5e9a2018-03-28 16:45:03 +08002268 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302269 ucontrol->value.integer.value[0] = 1;
2270 else
2271 ucontrol->value.integer.value[0] = 0;
2272
Meng Wang05d5e9a2018-03-28 16:45:03 +08002273 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302274 ucontrol->value.integer.value[0]);
2275
2276 return 0;
2277}
2278
2279static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2280 struct snd_ctl_elem_value *ucontrol)
2281{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302282 struct snd_soc_dapm_widget *widget =
2283 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302284 struct soc_mixer_control *mc =
2285 (struct soc_mixer_control *)kcontrol->private_value;
2286 struct snd_soc_dapm_update *update = NULL;
2287
2288 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002289 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2290 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302291 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2292 update);
2293 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002294 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2295 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302296 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2297 update);
2298 }
2299
2300 return 1;
2301}
2302
2303static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2304 struct snd_ctl_elem_value *ucontrol)
2305{
2306 struct soc_mixer_control *mc =
2307 (struct soc_mixer_control *)kcontrol->private_value;
2308
Meng Wang05d5e9a2018-03-28 16:45:03 +08002309 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302310 ucontrol->value.integer.value[0] = 1;
2311 else
2312 ucontrol->value.integer.value[0] = 0;
2313
Meng Wang05d5e9a2018-03-28 16:45:03 +08002314 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302315 ucontrol->value.integer.value[0]);
2316
2317 return 0;
2318}
2319
2320static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2321 struct snd_ctl_elem_value *ucontrol)
2322{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302323 struct snd_soc_dapm_widget *widget =
2324 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302325 struct soc_mixer_control *mc =
2326 (struct soc_mixer_control *)kcontrol->private_value;
2327 struct snd_soc_dapm_update *update = NULL;
2328
Meng Wang05d5e9a2018-03-28 16:45:03 +08002329 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302330 ucontrol->value.integer.value[0]);
2331
2332 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002333 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2334 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302335 snd_soc_dapm_mixer_update_power(widget->dapm,
2336 kcontrol, 1, update);
2337 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002338 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2339 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302340 snd_soc_dapm_mixer_update_power(widget->dapm,
2341 kcontrol, 0, update);
2342 }
2343
2344 return 1;
2345}
2346
2347static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2348{
2349 u32 session_id = 0;
2350 u16 path_type;
2351 struct media_format_info voc_be_media_format;
2352
2353 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2354
2355 session_id = msm_pcm_routing_get_voc_sessionid(val);
2356
2357 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2358 __func__, val, session_id);
2359
2360 mutex_lock(&routing_lock);
2361
2362 if (set)
2363 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2364 else
2365 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2366
2367 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2368 afe_get_port_type(msm_bedais[reg].port_id) ==
2369 MSM_AFE_PORT_TYPE_RX) {
2370 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2371 __func__, set, msm_bedais[reg].port_id);
2372 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2373 }
2374
2375 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2376 MSM_AFE_PORT_TYPE_RX)
2377 path_type = RX_PATH;
2378 else
2379 path_type = TX_PATH;
2380
2381 if (set) {
2382 if (msm_bedais[reg].active) {
2383 voc_set_route_flag(session_id, path_type, 1);
2384
2385 memset(&voc_be_media_format, 0,
2386 sizeof(struct media_format_info));
2387
2388 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2389 voc_be_media_format.num_channels =
2390 msm_bedais[reg].channel;
2391 voc_be_media_format.sample_rate =
2392 msm_bedais[reg].sample_rate;
2393 voc_be_media_format.bits_per_sample =
2394 msm_bedais[reg].format;
2395 /* Defaulting this to 1 for voice call usecases */
2396 voc_be_media_format.channel_mapping[0] = 1;
2397
2398 voc_set_device_config(session_id, path_type,
2399 &voc_be_media_format);
2400
2401 if (voc_get_route_flag(session_id, TX_PATH) &&
2402 voc_get_route_flag(session_id, RX_PATH))
2403 voc_enable_device(session_id);
2404 } else {
2405 pr_debug("%s BE is not active\n", __func__);
2406 }
2407 } else {
2408 voc_set_route_flag(session_id, path_type, 0);
2409 voc_disable_device(session_id);
2410 }
2411
2412 mutex_unlock(&routing_lock);
2413
2414}
2415
2416static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2417 struct snd_ctl_elem_value *ucontrol)
2418{
2419 struct soc_mixer_control *mc =
2420 (struct soc_mixer_control *)kcontrol->private_value;
2421
2422 mutex_lock(&routing_lock);
2423
Meng Wang05d5e9a2018-03-28 16:45:03 +08002424 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302425 ucontrol->value.integer.value[0] = 1;
2426 else
2427 ucontrol->value.integer.value[0] = 0;
2428
2429 mutex_unlock(&routing_lock);
2430
Meng Wang05d5e9a2018-03-28 16:45:03 +08002431 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302432 ucontrol->value.integer.value[0]);
2433
2434 return 0;
2435}
2436
2437static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2438 struct snd_ctl_elem_value *ucontrol)
2439{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302440 struct snd_soc_dapm_widget *widget =
2441 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302442 struct soc_mixer_control *mc =
2443 (struct soc_mixer_control *)kcontrol->private_value;
2444 struct snd_soc_dapm_update *update = NULL;
2445
2446 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002447 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302448 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2449 update);
2450 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002451 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302452 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2453 update);
2454 }
2455
2456 return 1;
2457}
2458
2459static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2460 struct snd_ctl_elem_value *ucontrol)
2461{
2462 struct soc_mixer_control *mc =
2463 (struct soc_mixer_control *)kcontrol->private_value;
2464
2465 mutex_lock(&routing_lock);
2466
Meng Wang05d5e9a2018-03-28 16:45:03 +08002467 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302468 ucontrol->value.integer.value[0] = 1;
2469 else
2470 ucontrol->value.integer.value[0] = 0;
2471
2472 mutex_unlock(&routing_lock);
2473
Meng Wang05d5e9a2018-03-28 16:45:03 +08002474 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302475 ucontrol->value.integer.value[0]);
2476
2477 return 0;
2478}
2479
2480static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2481 struct snd_ctl_elem_value *ucontrol)
2482{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302483 struct snd_soc_dapm_widget *widget =
2484 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302485 struct soc_mixer_control *mc =
2486 (struct soc_mixer_control *)kcontrol->private_value;
2487 struct snd_soc_dapm_update *update = NULL;
2488
2489 if (ucontrol->value.integer.value[0]) {
2490 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002491 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302492 mutex_unlock(&routing_lock);
2493
2494 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2495 update);
2496 } else {
2497 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002498 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302499 mutex_unlock(&routing_lock);
2500
2501 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2502 update);
2503 }
2504
Meng Wang05d5e9a2018-03-28 16:45:03 +08002505 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302506 ucontrol->value.integer.value[0]);
2507
2508 return 1;
2509}
2510
2511/*
2512 * Return the mapping between port ID and backend ID to enable the AFE callback
2513 * to determine the acdb_dev_id from the port id
2514 */
2515int msm_pcm_get_be_id_from_port_id(int port_id)
2516{
2517 int i;
2518 int be_id = -EINVAL;
2519
2520 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2521 if (msm_bedais[i].port_id == port_id) {
2522 be_id = i;
2523 break;
2524 }
2525 }
2526
2527 return be_id;
2528}
2529
2530/*
2531 * Return the registered dev_acdb_id given a port ID to enable identifying the
2532 * correct AFE calibration information by comparing the header information.
2533 */
2534static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2535{
2536 int acdb_id = -EINVAL;
2537 int i = 0;
2538 int session;
2539 int port_type = afe_get_port_type(port_id);
2540 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2541
2542 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2543 __func__, port_id, be_id, port_type);
2544
2545 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2546 session = SESSION_TYPE_TX;
2547 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2548 session = SESSION_TYPE_RX;
2549 } else {
2550 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2551 acdb_id = -EINVAL;
2552 goto exit;
2553 }
2554
2555 if (be_id < 0) {
2556 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2557 goto exit;
2558 }
2559
2560 mutex_lock(&routing_lock);
2561 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2562 MSM_FRONTEND_DAI_MAX);
2563 if (i < MSM_FRONTEND_DAI_MAX)
2564 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2565
2566 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2567 __func__, i, session, be_id, acdb_id);
2568 mutex_unlock(&routing_lock);
2569exit:
2570 return acdb_id;
2571}
2572
2573static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2574 struct snd_ctl_elem_value *ucontrol)
2575{
2576 ucontrol->value.integer.value[0] = fm_switch_enable;
2577 pr_debug("%s: FM Switch enable %ld\n", __func__,
2578 ucontrol->value.integer.value[0]);
2579 return 0;
2580}
2581
2582static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2583 struct snd_ctl_elem_value *ucontrol)
2584{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302585 struct snd_soc_dapm_widget *widget =
2586 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302587 struct snd_soc_dapm_update *update = NULL;
2588
2589 pr_debug("%s: FM Switch enable %ld\n", __func__,
2590 ucontrol->value.integer.value[0]);
2591 if (ucontrol->value.integer.value[0])
2592 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2593 update);
2594 else
2595 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2596 update);
2597 fm_switch_enable = ucontrol->value.integer.value[0];
2598 return 1;
2599}
2600
2601static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2602 struct snd_ctl_elem_value *ucontrol)
2603{
2604 ucontrol->value.integer.value[0] = hfp_switch_enable;
2605 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2606 ucontrol->value.integer.value[0]);
2607 return 0;
2608}
2609
2610static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2611 struct snd_ctl_elem_value *ucontrol)
2612{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302613 struct snd_soc_dapm_widget *widget =
2614 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302615 struct snd_soc_dapm_update *update = NULL;
2616
2617 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2618 ucontrol->value.integer.value[0]);
2619 if (ucontrol->value.integer.value[0])
2620 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2621 1, update);
2622 else
2623 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2624 0, update);
2625 hfp_switch_enable = ucontrol->value.integer.value[0];
2626 return 1;
2627}
2628
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002629static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2630 struct snd_ctl_elem_value *ucontrol)
2631{
2632 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2633 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2634 ucontrol->value.integer.value[0]);
2635 return 0;
2636}
2637
2638static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2639 struct snd_ctl_elem_value *ucontrol)
2640{
2641 struct snd_soc_dapm_widget *widget =
2642 snd_soc_dapm_kcontrol_widget(kcontrol);
2643 struct snd_soc_dapm_update *update = NULL;
2644
2645 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2646 ucontrol->value.integer.value[0]);
2647 a2dp_switch_enable = ucontrol->value.integer.value[0];
2648 if (a2dp_switch_enable)
2649 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2650 1, update);
2651 else
2652 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2653 0, update);
2654 return 1;
2655}
2656
Zhou Songcaa541d2019-02-19 18:37:47 +08002657static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2658 struct snd_ctl_elem_value *ucontrol)
2659{
2660 ucontrol->value.integer.value[0] = sco_switch_enable;
2661 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2662 ucontrol->value.integer.value[0]);
2663 return 0;
2664}
2665
2666static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2667 struct snd_ctl_elem_value *ucontrol)
2668{
2669 struct snd_soc_dapm_widget *widget =
2670 snd_soc_dapm_kcontrol_widget(kcontrol);
2671 struct snd_soc_dapm_update *update = NULL;
2672
2673 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2674 ucontrol->value.integer.value[0]);
2675 sco_switch_enable = ucontrol->value.integer.value[0];
2676 if (sco_switch_enable)
2677 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2678 1, update);
2679 else
2680 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2681 0, update);
2682 return 1;
2683}
2684
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302685static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2686 struct snd_ctl_elem_value *ucontrol)
2687{
2688 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2689 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2690 ucontrol->value.integer.value[0]);
2691 return 0;
2692}
2693
2694static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2695 struct snd_ctl_elem_value *ucontrol)
2696{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302697 struct snd_soc_dapm_widget *widget =
2698 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302699 struct snd_soc_dapm_update *update = NULL;
2700
2701 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2702 ucontrol->value.integer.value[0]);
2703 if (ucontrol->value.integer.value[0])
2704 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2705 update);
2706 else
2707 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2708 update);
2709 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2710 return 1;
2711}
2712
2713static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2714 struct snd_ctl_elem_value *ucontrol)
2715{
2716 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2717 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2718 ucontrol->value.integer.value[0]);
2719 return 0;
2720}
2721
2722static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2723 struct snd_ctl_elem_value *ucontrol)
2724{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302725 struct snd_soc_dapm_widget *widget =
2726 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302727 struct snd_soc_dapm_update *update = NULL;
2728
2729 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2730 ucontrol->value.integer.value[0]);
2731 if (ucontrol->value.integer.value[0])
2732 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2733 update);
2734 else
2735 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2736 update);
2737 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2738 return 1;
2739}
2740
2741static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2742 struct snd_ctl_elem_value *ucontrol)
2743{
2744 ucontrol->value.integer.value[0] = usb_switch_enable;
2745 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2746 ucontrol->value.integer.value[0]);
2747 return 0;
2748}
2749
2750static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2751 struct snd_ctl_elem_value *ucontrol)
2752{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302753 struct snd_soc_dapm_widget *widget =
2754 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302755 struct snd_soc_dapm_update *update = NULL;
2756
2757 pr_debug("%s: USB Switch enable %ld\n", __func__,
2758 ucontrol->value.integer.value[0]);
2759 if (ucontrol->value.integer.value[0])
2760 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2761 1, update);
2762 else
2763 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2764 0, update);
2765 usb_switch_enable = ucontrol->value.integer.value[0];
2766 return 1;
2767}
2768
2769static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2770 struct snd_ctl_elem_value *ucontrol)
2771{
2772 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2773 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2774 ucontrol->value.integer.value[0]);
2775 return 0;
2776}
2777
2778static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2779 struct snd_ctl_elem_value *ucontrol)
2780{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302781 struct snd_soc_dapm_widget *widget =
2782 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302783 struct snd_soc_dapm_update *update = NULL;
2784
2785 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2786 ucontrol->value.integer.value[0]);
2787 if (ucontrol->value.integer.value[0])
2788 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2789 update);
2790 else
2791 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2792 update);
2793 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2794 return 1;
2795}
2796
2797static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2798 struct snd_ctl_elem_value *ucontrol)
2799{
2800 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2801 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2802 ucontrol->value.integer.value[0]);
2803 return 0;
2804}
2805
2806static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2807 struct snd_ctl_elem_value *ucontrol)
2808{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302809 struct snd_soc_dapm_widget *widget =
2810 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302811 struct snd_soc_dapm_update *update = NULL;
2812
2813 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2814 ucontrol->value.integer.value[0]);
2815 if (ucontrol->value.integer.value[0])
2816 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2817 update);
2818 else
2819 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2820 update);
2821 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2822 return 1;
2823}
2824
2825static int msm_routing_get_tert_mi2s_switch_mixer(
2826 struct snd_kcontrol *kcontrol,
2827 struct snd_ctl_elem_value *ucontrol)
2828{
2829 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2830 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2831 ucontrol->value.integer.value[0]);
2832 return 0;
2833}
2834
2835static int msm_routing_put_tert_mi2s_switch_mixer(
2836 struct snd_kcontrol *kcontrol,
2837 struct snd_ctl_elem_value *ucontrol)
2838{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302839 struct snd_soc_dapm_widget *widget =
2840 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302841 struct snd_soc_dapm_update *update = NULL;
2842
2843 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2844 ucontrol->value.integer.value[0]);
2845 if (ucontrol->value.integer.value[0])
2846 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2847 update);
2848 else
2849 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2850 update);
2851 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2852 return 1;
2853}
2854
2855static int msm_routing_get_quat_mi2s_switch_mixer(
2856 struct snd_kcontrol *kcontrol,
2857 struct snd_ctl_elem_value *ucontrol)
2858{
2859 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2860 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2861 ucontrol->value.integer.value[0]);
2862 return 0;
2863}
2864
2865static int msm_routing_put_quat_mi2s_switch_mixer(
2866 struct snd_kcontrol *kcontrol,
2867 struct snd_ctl_elem_value *ucontrol)
2868{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302869 struct snd_soc_dapm_widget *widget =
2870 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302871 struct snd_soc_dapm_update *update = NULL;
2872
2873 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2874 ucontrol->value.integer.value[0]);
2875 if (ucontrol->value.integer.value[0])
2876 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2877 update);
2878 else
2879 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2880 update);
2881 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2882 return 1;
2883}
2884
Rohit Kumara5077932017-09-10 22:05:05 +05302885static int msm_routing_get_quin_mi2s_switch_mixer(
2886 struct snd_kcontrol *kcontrol,
2887 struct snd_ctl_elem_value *ucontrol)
2888{
2889 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2890 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2891 ucontrol->value.integer.value[0]);
2892 return 0;
2893}
2894
2895static int msm_routing_put_quin_mi2s_switch_mixer(
2896 struct snd_kcontrol *kcontrol,
2897 struct snd_ctl_elem_value *ucontrol)
2898{
2899 struct snd_soc_dapm_widget *widget =
2900 snd_soc_dapm_kcontrol_widget(kcontrol);
2901 struct snd_soc_dapm_update *update = NULL;
2902
2903 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2904 ucontrol->value.integer.value[0]);
2905 if (ucontrol->value.integer.value[0])
2906 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2907 update);
2908 else
2909 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2910 update);
2911 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2912 return 1;
2913}
2914
Karthikeyan Manic3700752019-03-11 18:33:53 -07002915static int msm_routing_get_sen_mi2s_switch_mixer(
2916 struct snd_kcontrol *kcontrol,
2917 struct snd_ctl_elem_value *ucontrol)
2918{
2919 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2920 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2921 ucontrol->value.integer.value[0]);
2922 return 0;
2923}
2924
2925static int msm_routing_put_sen_mi2s_switch_mixer(
2926 struct snd_kcontrol *kcontrol,
2927 struct snd_ctl_elem_value *ucontrol)
2928{
2929 struct snd_soc_dapm_widget *widget =
2930 snd_soc_dapm_kcontrol_widget(kcontrol);
2931 struct snd_soc_dapm_update *update = NULL;
2932
2933 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2934 ucontrol->value.integer.value[0]);
2935 if (ucontrol->value.integer.value[0])
2936 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2937 update);
2938 else
2939 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2940 update);
2941 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2942 return 1;
2943}
2944
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302945static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2946 struct snd_ctl_elem_value *ucontrol)
2947{
2948 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2949 pr_debug("%s: FM Switch enable %ld\n", __func__,
2950 ucontrol->value.integer.value[0]);
2951 return 0;
2952}
2953
2954static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2955 struct snd_ctl_elem_value *ucontrol)
2956{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302957 struct snd_soc_dapm_widget *widget =
2958 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302959 struct snd_soc_dapm_update *update = NULL;
2960
2961 pr_debug("%s: FM Switch enable %ld\n", __func__,
2962 ucontrol->value.integer.value[0]);
2963 if (ucontrol->value.integer.value[0])
2964 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2965 update);
2966 else
2967 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2968 update);
2969 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2970 return 1;
2971}
2972
2973static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2974 struct snd_ctl_elem_value *ucontrol)
2975{
2976 ucontrol->value.integer.value[0] = lsm_port_index;
2977 return 0;
2978}
2979
2980static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2981 struct snd_ctl_elem_value *ucontrol)
2982{
2983 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2984 int mux = ucontrol->value.enumerated.item[0];
2985 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2986
2987 if (mux >= e->items) {
2988 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2989 return -EINVAL;
2990 }
2991
2992 pr_debug("%s: LSM enable %ld\n", __func__,
2993 ucontrol->value.integer.value[0]);
2994 switch (ucontrol->value.integer.value[0]) {
2995 case 1:
2996 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2997 break;
2998 case 2:
2999 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
3000 break;
3001 case 3:
3002 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
3003 break;
3004 case 4:
3005 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
3006 break;
3007 case 5:
3008 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
3009 break;
3010 case 6:
3011 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
3012 break;
3013 case 7:
3014 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
3015 break;
3016 case 8:
3017 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3018 break;
3019 case 9:
3020 lsm_port = ADM_LSM_PORT_ID;
3021 break;
3022 case 10:
3023 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
3024 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05303025 case 11:
3026 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
3027 break;
3028 case 12:
3029 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
3030 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303031 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003032 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303033 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303034 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003035 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3036 break;
3037 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303038 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
3039 break;
Guodong Hu395166b2019-10-10 16:56:28 +08003040 case 16:
3041 lsm_port = AFE_PORT_ID_TERTIARY_TDM_TX;
3042 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303043 default:
3044 pr_err("Default lsm port");
3045 break;
3046 }
3047 set_lsm_port(lsm_port);
3048 lsm_port_index = ucontrol->value.integer.value[0];
3049
3050 return 0;
3051}
3052
3053static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3054 struct snd_ctl_elem_value *ucontrol)
3055{
3056 int i;
3057 u16 port_id;
3058 enum afe_mad_type mad_type;
3059
Guodong Hu395166b2019-10-10 16:56:28 +08003060 pr_debug("%s: id name %s\n", __func__, kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303061 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3062 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3063 strlen(lsm_port_text[i])))
3064 break;
3065
3066 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003067 pr_warn("%s: Invalid id name %s\n", __func__,
3068 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303069 return -EINVAL;
3070 }
3071
3072 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3073
3074 /*Check for Tertiary/Quaternary/INT3 TX port*/
3075 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3076 strlen(lsm_port_text[7])))
3077 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3078
3079 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3080 strlen(lsm_port_text[8])))
3081 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3082
3083 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3084 strlen(lsm_port_text[10])))
3085 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3086
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303087 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3088 strlen(lsm_port_text[14])))
Guodong Hu395166b2019-10-10 16:56:28 +08003089 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3090
3091 if (strnstr(kcontrol->id.name, lsm_port_text[15],
3092 strlen(lsm_port_text[15])))
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303093 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3094
Guodong Hu395166b2019-10-10 16:56:28 +08003095 if (strnstr(kcontrol->id.name, lsm_port_text[16],
3096 strlen(lsm_port_text[16])))
3097 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3098
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303099 mad_type = afe_port_get_mad_type(port_id);
3100 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3101 mad_type);
3102 switch (mad_type) {
3103 case MAD_HW_NONE:
3104 ucontrol->value.integer.value[0] = MADNONE;
3105 break;
3106 case MAD_HW_AUDIO:
3107 ucontrol->value.integer.value[0] = MADAUDIO;
3108 break;
3109 case MAD_HW_BEACON:
3110 ucontrol->value.integer.value[0] = MADBEACON;
3111 break;
3112 case MAD_HW_ULTRASOUND:
3113 ucontrol->value.integer.value[0] = MADULTRASOUND;
3114 break;
3115 case MAD_SW_AUDIO:
3116 ucontrol->value.integer.value[0] = MADSWAUDIO;
3117 break;
3118 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003119 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303120 return -EINVAL;
3121 }
3122 return 0;
3123}
3124
3125static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3126 struct snd_ctl_elem_value *ucontrol)
3127{
3128 int i;
3129 u16 port_id;
3130 enum afe_mad_type mad_type;
3131
Guodong Hu395166b2019-10-10 16:56:28 +08003132 pr_debug("%s: id name %s\n", __func__, kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303133 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3134 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3135 strlen(lsm_port_text[i])))
3136 break;
3137
3138 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003139 pr_warn("%s: Invalid id name %s\n", __func__,
3140 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303141 return -EINVAL;
3142 }
3143
3144 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3145 switch (ucontrol->value.integer.value[0]) {
3146 case MADNONE:
3147 mad_type = MAD_HW_NONE;
3148 break;
3149 case MADAUDIO:
3150 mad_type = MAD_HW_AUDIO;
3151 break;
3152 case MADBEACON:
3153 mad_type = MAD_HW_BEACON;
3154 break;
3155 case MADULTRASOUND:
3156 mad_type = MAD_HW_ULTRASOUND;
3157 break;
3158 case MADSWAUDIO:
3159 mad_type = MAD_SW_AUDIO;
3160 break;
3161 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003162 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303163 return -EINVAL;
3164 }
3165
3166 /*Check for Tertiary/Quaternary/INT3 TX port*/
3167 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3168 strlen(lsm_port_text[7])))
3169 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3170
3171 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3172 strlen(lsm_port_text[8])))
3173 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3174
3175 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3176 strlen(lsm_port_text[10])))
3177 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3178
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303179 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3180 strlen(lsm_port_text[14])))
Guodong Hu395166b2019-10-10 16:56:28 +08003181 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3182
3183 if (strnstr(kcontrol->id.name, lsm_port_text[15],
3184 strlen(lsm_port_text[15])))
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303185 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3186
Guodong Hu395166b2019-10-10 16:56:28 +08003187 if (strnstr(kcontrol->id.name, lsm_port_text[16],
3188 strlen(lsm_port_text[16])))
3189 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3190
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303191 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3192 mad_type);
3193 return afe_port_set_mad_type(port_id, mad_type);
3194}
3195
3196static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3197
Surendar Karka25e77dd2019-05-09 14:33:45 +05303198static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303199 adm_override_chs_text);
3200
3201static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3202{
3203 int backend_id;
3204
3205 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3206 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303207 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3208 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303209 } else {
3210 pr_err("%s: unsupported backend id: %s",
3211 __func__, kcontrol->id.name);
3212 return -EINVAL;
3213 }
3214
3215 return backend_id;
3216}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303217
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303218static int msm_routing_adm_channel_config_get(
3219 struct snd_kcontrol *kcontrol,
3220 struct snd_ctl_elem_value *ucontrol)
3221{
3222 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3223
3224 if (backend_id >= 0) {
3225 mutex_lock(&routing_lock);
3226 ucontrol->value.integer.value[0] =
3227 msm_bedais[backend_id].adm_override_ch;
3228 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3229 ucontrol->value.integer.value[0], backend_id);
3230 mutex_unlock(&routing_lock);
3231 }
3232
3233 return 0;
3234}
3235
3236static int msm_routing_adm_channel_config_put(
3237 struct snd_kcontrol *kcontrol,
3238 struct snd_ctl_elem_value *ucontrol)
3239{
3240 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3241
3242 if (backend_id >= 0) {
3243 mutex_lock(&routing_lock);
3244 msm_bedais[backend_id].adm_override_ch =
3245 ucontrol->value.integer.value[0];
3246 pr_debug("%s:updating BE :%d adm channels: %d\n",
3247 __func__, backend_id,
3248 msm_bedais[backend_id].adm_override_ch);
3249 mutex_unlock(&routing_lock);
3250 }
3251
3252 return 0;
3253}
3254
3255static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303256 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3257 msm_routing_adm_channel_config_get,
3258 msm_routing_adm_channel_config_put),
3259 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303260 msm_routing_adm_channel_config_get,
3261 msm_routing_adm_channel_config_put),
3262};
3263
3264static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3265 struct snd_ctl_elem_value *ucontrol)
3266{
3267
3268 mutex_lock(&routing_lock);
3269 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3270 mutex_unlock(&routing_lock);
3271 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3272 ucontrol->value.integer.value[0]);
3273 return 0;
3274};
3275
3276static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3277 struct snd_ctl_elem_value *ucontrol)
3278{
3279 struct aanc_data aanc_info;
3280
3281 mutex_lock(&routing_lock);
3282 memset(&aanc_info, 0x00, sizeof(aanc_info));
3283 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3284 ucontrol->value.integer.value[0]);
3285 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3286 if (ucontrol->value.integer.value[0] == 0) {
3287 aanc_info.aanc_active = false;
3288 aanc_info.aanc_tx_port = 0;
3289 aanc_info.aanc_rx_port = 0;
3290 } else {
3291 aanc_info.aanc_active = true;
3292 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3293 aanc_info.aanc_tx_port =
3294 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3295 }
3296 afe_set_aanc_info(&aanc_info);
3297 mutex_unlock(&routing_lock);
3298 return 0;
3299};
3300static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3301 struct snd_ctl_elem_value *ucontrol)
3302{
3303 int idx = 0, shift = 0;
3304 struct soc_mixer_control *mc =
3305 (struct soc_mixer_control *)kcontrol->private_value;
3306
Meng Wang05d5e9a2018-03-28 16:45:03 +08003307 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3308 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303309
3310 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3311 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3312 return -EINVAL;
3313 }
3314
3315 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003316 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303317 ucontrol->value.integer.value[0] = 1;
3318 else
3319 ucontrol->value.integer.value[0] = 0;
3320
Meng Wang05d5e9a2018-03-28 16:45:03 +08003321 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303322 ucontrol->value.integer.value[0]);
3323
3324 return 0;
3325}
3326
3327static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3328 struct snd_ctl_elem_value *ucontrol)
3329{
3330 int idx = 0, shift = 0;
3331 struct soc_mixer_control *mc =
3332 (struct soc_mixer_control *)kcontrol->private_value;
3333
Meng Wang05d5e9a2018-03-28 16:45:03 +08003334 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3335 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303336
3337 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3338 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3339 return -EINVAL;
3340 }
3341
Meng Wang05d5e9a2018-03-28 16:45:03 +08003342 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3343 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303344 ucontrol->value.integer.value[0], idx, shift);
3345
3346 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003347 afe_loopback(1, msm_bedais[mc->shift].port_id,
3348 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303349 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003350 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303351 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003352 afe_loopback(0, msm_bedais[mc->shift].port_id,
3353 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303354 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003355 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303356 }
3357
3358 return 1;
3359}
3360
3361static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3362 struct snd_ctl_elem_value *ucontrol)
3363{
3364 u16 fe_id = 0;
3365
3366 fe_id = ((struct soc_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 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3374
3375 return 0;
3376}
3377
3378static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3379 struct snd_ctl_elem_value *ucontrol)
3380{
3381 u16 fe_id = 0;
3382
3383 fe_id = ((struct soc_mixer_control *)
3384 kcontrol->private_value)->shift;
3385 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3386 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3387 return -EINVAL;
3388 }
3389
3390 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3391
3392 return 1;
3393}
3394
3395static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3396 struct snd_ctl_elem_value *ucontrol)
3397{
3398 u16 fe_id = 0;
3399
3400 fe_id = ((struct soc_multi_mixer_control *)
3401 kcontrol->private_value)->shift;
3402 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3403 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3404 return -EINVAL;
3405 }
3406
3407 ucontrol->value.integer.value[0] =
3408 channel_mixer[fe_id].output_channel;
3409 return 0;
3410}
3411
3412static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3413 struct snd_ctl_elem_value *ucontrol)
3414{
3415 u16 fe_id = 0;
3416
3417 fe_id = ((struct soc_multi_mixer_control *)
3418 kcontrol->private_value)->shift;
3419 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3420 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3421 return -EINVAL;
3422 }
3423
3424 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3425 fe_id,
3426 (unsigned int)(ucontrol->value.integer.value[0]));
3427 channel_mixer[fe_id].output_channel =
3428 (unsigned int)(ucontrol->value.integer.value[0]);
3429
3430 return 1;
3431}
3432
3433static const char *const ch_mixer[] = {"Disable", "Enable"};
3434
3435/* If new backend is added, need update this array */
3436static const char *const be_name[] = {
3437"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3438"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3439"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3440"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3441"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3442"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3443"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3444"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3445"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3446"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3447"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3448"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003449"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303450"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3451"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3452"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3453"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3454"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3455"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3456"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3457"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3458"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3459"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3460"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3461"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3462"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3463"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3464"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3465"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3466"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303467"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3468"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3469"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3470"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003471"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3472"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3473"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3474"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003475"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3476"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3477"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3478"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3479"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3480"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3481"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3482"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 -08003483"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 +05303484"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3485"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3486"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3487"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3488"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Ralf Herz29e07132019-07-26 15:15:21 +02003489"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX", "PRI_META_MI2S_RX",
3490"SEC_META_MI2S_RX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303491};
3492
3493static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3494 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3495static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3496 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3497static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3498 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3499static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3500 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303501static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3502 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3503static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3504 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3505static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3506 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3507static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3508 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303509static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
3510 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303511
3512static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3513 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3514static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3515 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3516static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3517 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3518static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3519 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3520static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3521 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3522static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3523 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3524static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3525 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3526static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3527 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303528static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3529 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3530static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3531 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3532static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3533 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3534static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3535 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3536static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3537 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3538static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3539 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3540static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3541 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3542static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3543 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303544static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
3545 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
3546static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
3547 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303548
3549static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3550 unsigned int channels,
3551 unsigned int items, const char *const names[])
3552{
3553 if (uinfo->value.enumerated.item >= items)
3554 uinfo->value.enumerated.item = items - 1;
3555
3556 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3557 sizeof(uinfo->value.enumerated.name),
3558 "ALSA: too long item name '%s'\n",
3559 names[uinfo->value.enumerated.item]);
3560 strlcpy(uinfo->value.enumerated.name,
3561 names[uinfo->value.enumerated.item],
3562 sizeof(uinfo->value.enumerated.name));
3563 return 0;
3564}
3565
3566static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3567 struct snd_ctl_elem_info *uinfo)
3568{
3569 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3570
3571 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3572 uinfo->count = 1;
3573
3574 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3575 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3576
3577 return 0;
3578}
3579static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3580 struct snd_ctl_elem_value *ucontrol)
3581{
3582 u16 fe_id = 0;
3583
3584 fe_id = ((struct soc_enum *)
3585 kcontrol->private_value)->shift_l;
3586 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3587 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3588 return -EINVAL;
3589 }
3590
3591 pr_debug("%s: FE %d %s\n", __func__,
3592 fe_id,
3593 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3594 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3595 return 0;
3596}
3597
3598static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3599 struct snd_ctl_elem_value *ucontrol)
3600{
3601 u16 fe_id = 0;
3602
3603 fe_id = ((struct soc_enum *)
3604 kcontrol->private_value)->shift_l;
3605 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3606 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3607 return -EINVAL;
3608 }
3609
3610 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3611 pr_debug("%s: %s FE %d\n", __func__,
3612 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3613 fe_id);
3614 return 0;
3615}
3616
3617static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3618 struct snd_ctl_elem_info *uinfo)
3619{
3620 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3621
3622 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3623 uinfo->count = 1;
3624
3625 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3626 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3627
3628 return 0;
3629}
3630
3631static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3632 struct snd_ctl_elem_value *ucontrol)
3633{
3634 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3635 u16 fe_id = 0, in_ch = 0;
3636
3637 fe_id = e->shift_l;
3638 in_ch = e->shift_r;
3639 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3640 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3641 return -EINVAL;
3642 }
3643 if (in_ch >= ADM_MAX_CHANNELS) {
3644 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3645 return -EINVAL;
3646 }
3647
3648 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3649 return 1;
3650}
3651
3652static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3653 struct snd_ctl_elem_value *ucontrol)
3654{
3655 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3656 u16 fe_id = 0, in_ch = 0;
3657
3658 fe_id = e->shift_l;
3659 in_ch = e->shift_r;
3660 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3661 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3662 return -EINVAL;
3663 }
3664 if (in_ch >= ADM_MAX_CHANNELS) {
3665 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3666 return -EINVAL;
3667 }
3668
3669 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3670 return 1;
3671}
3672
3673
3674static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3675 struct snd_ctl_elem_info *uinfo)
3676{
3677 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3678 uinfo->count = ADM_MAX_CHANNELS;
3679 uinfo->value.integer.min = 0;
3680 uinfo->value.integer.max = WEIGHT_0_DB;
3681
3682 return 0;
3683}
3684
3685static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3686 struct snd_ctl_elem_value *ucontrol)
3687{
3688 u16 fe_id = 0, out_ch = 0;
3689 int i, weight;
3690
3691 fe_id = ((struct soc_multi_mixer_control *)
3692 kcontrol->private_value)->shift;
3693 out_ch = ((struct soc_multi_mixer_control *)
3694 kcontrol->private_value)->rshift;
3695 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3696 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3697 return -EINVAL;
3698 }
3699 if (out_ch >= ADM_MAX_CHANNELS) {
3700 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3701 return -EINVAL;
3702 }
3703
3704 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3705 __func__, fe_id,
3706 ucontrol->value.integer.value[0],
3707 ucontrol->value.integer.value[1],
3708 ucontrol->value.integer.value[2],
3709 ucontrol->value.integer.value[3],
3710 ucontrol->value.integer.value[4],
3711 ucontrol->value.integer.value[5],
3712 ucontrol->value.integer.value[6],
3713 ucontrol->value.integer.value[7]);
3714
3715 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3716 weight = ucontrol->value.integer.value[i];
3717 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3718 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3719 __func__, fe_id, out_ch, i,
3720 channel_mixer[fe_id].channel_weight[out_ch][i]);
3721 }
3722
3723 return 0;
3724}
3725
3726static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3727 struct snd_ctl_elem_value *ucontrol)
3728{
3729 u16 fe_id = 0, out_ch = 0;
3730 int i;
3731
3732 fe_id = ((struct soc_multi_mixer_control *)
3733 kcontrol->private_value)->shift;
3734 out_ch = ((struct soc_multi_mixer_control *)
3735 kcontrol->private_value)->rshift;
3736 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3737 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3738 return -EINVAL;
3739 }
3740 if (out_ch >= ADM_MAX_CHANNELS) {
3741 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3742 return -EINVAL;
3743 }
3744
3745 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3746 ucontrol->value.integer.value[i] =
3747 channel_mixer[fe_id].channel_weight[out_ch][i];
3748
3749 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3750 __func__, fe_id,
3751 ucontrol->value.integer.value[0],
3752 ucontrol->value.integer.value[1],
3753 ucontrol->value.integer.value[2],
3754 ucontrol->value.integer.value[3],
3755 ucontrol->value.integer.value[4],
3756 ucontrol->value.integer.value[5],
3757 ucontrol->value.integer.value[6],
3758 ucontrol->value.integer.value[7]);
3759
3760 return 0;
3761}
3762
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303763static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3764 struct snd_ctl_elem_info *uinfo)
3765{
3766 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3767 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3768 /* Valid channel map value ranges from 1 to 64 */
3769 uinfo->value.integer.min = 0;
3770 uinfo->value.integer.max = 64;
3771
3772 return 0;
3773}
3774
3775static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3776 struct snd_ctl_elem_value *ucontrol)
3777{
3778 u16 fe_id = 0;
3779 int i, ch_map;
3780
3781 fe_id = ((struct soc_multi_mixer_control *)
3782 kcontrol->private_value)->shift;
3783 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3784 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3785 return -EINVAL;
3786 }
3787
3788 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3789 ch_map = ucontrol->value.integer.value[i];
3790 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3791 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3792 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3793 }
3794
3795 /* Make override_out_ch_map false if ch map is reset */
3796 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3797 channel_mixer[fe_id].override_out_ch_map = false;
3798 else
3799 channel_mixer[fe_id].override_out_ch_map = true;
3800
3801 return 0;
3802}
3803
3804static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3805 struct snd_ctl_elem_value *ucontrol)
3806{
3807 u16 fe_id = 0;
3808 int i;
3809
3810 fe_id = ((struct soc_multi_mixer_control *)
3811 kcontrol->private_value)->shift;
3812 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3813 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3814 return -EINVAL;
3815 }
3816
3817 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3818 ucontrol->value.integer.value[i] =
3819 channel_mixer[fe_id].out_ch_map[i];
3820
3821 return 0;
3822}
3823
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303824static const struct snd_kcontrol_new channel_mixer_controls[] = {
3825 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3826 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3827 msm_pcm_get_channel_rule_index,
3828 msm_pcm_put_channel_rule_index),
3829 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3830 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3831 msm_pcm_get_channel_rule_index,
3832 msm_pcm_put_channel_rule_index),
3833 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3834 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3835 msm_pcm_get_channel_rule_index,
3836 msm_pcm_put_channel_rule_index),
3837 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3838 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3839 msm_pcm_get_channel_rule_index,
3840 msm_pcm_put_channel_rule_index),
3841 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3842 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3843 msm_pcm_get_channel_rule_index,
3844 msm_pcm_put_channel_rule_index),
3845 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3846 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3847 msm_pcm_get_channel_rule_index,
3848 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303849 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3850 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3851 msm_pcm_get_channel_rule_index,
3852 msm_pcm_put_channel_rule_index),
3853 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3854 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3855 msm_pcm_get_channel_rule_index,
3856 msm_pcm_put_channel_rule_index),
3857 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3858 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3859 msm_pcm_get_channel_rule_index,
3860 msm_pcm_put_channel_rule_index),
3861 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3862 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3863 msm_pcm_get_channel_rule_index,
3864 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303865 SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
3866 MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
3867 msm_pcm_get_channel_rule_index,
3868 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303869
3870 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303871 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303872 msm_pcm_get_out_chs,
3873 msm_pcm_put_out_chs),
3874 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3875 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3876 msm_pcm_get_out_chs,
3877 msm_pcm_put_out_chs),
3878 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3879 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3880 msm_pcm_get_out_chs,
3881 msm_pcm_put_out_chs),
3882 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3883 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3884 msm_pcm_get_out_chs,
3885 msm_pcm_put_out_chs),
3886 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3887 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3888 msm_pcm_get_out_chs,
3889 msm_pcm_put_out_chs),
3890 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3891 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3892 msm_pcm_get_out_chs,
3893 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303894 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3895 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3896 msm_pcm_get_out_chs,
3897 msm_pcm_put_out_chs),
3898 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3899 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3900 msm_pcm_get_out_chs,
3901 msm_pcm_put_out_chs),
3902 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3903 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3904 msm_pcm_get_out_chs,
3905 msm_pcm_put_out_chs),
3906 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3907 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3908 msm_pcm_get_out_chs,
3909 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303910 SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
3911 MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
3912 msm_pcm_get_out_chs,
3913 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303914 {
3915 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3916 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3917 .name = "MultiMedia1 Channel Mixer",
3918 .info = msm_pcm_channel_mixer_info,
3919 .get = msm_pcm_channel_mixer_get,
3920 .put = msm_pcm_channel_mixer_put,
3921 .private_value = (unsigned long)&(mm1_channel_mux)
3922 },
3923 {
3924 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3925 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3926 .name = "MultiMedia2 Channel Mixer",
3927 .info = msm_pcm_channel_mixer_info,
3928 .get = msm_pcm_channel_mixer_get,
3929 .put = msm_pcm_channel_mixer_put,
3930 .private_value = (unsigned long)&(mm2_channel_mux)
3931 },
3932 {
3933 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3934 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3935 .name = "MultiMedia3 Channel Mixer",
3936 .info = msm_pcm_channel_mixer_info,
3937 .get = msm_pcm_channel_mixer_get,
3938 .put = msm_pcm_channel_mixer_put,
3939 .private_value = (unsigned long)&(mm3_channel_mux)
3940 },
3941 {
3942 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3943 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3944 .name = "MultiMedia4 Channel Mixer",
3945 .info = msm_pcm_channel_mixer_info,
3946 .get = msm_pcm_channel_mixer_get,
3947 .put = msm_pcm_channel_mixer_put,
3948 .private_value = (unsigned long)&(mm4_channel_mux)
3949 },
3950 {
3951 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3952 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303953 .name = "MultiMedia18 Channel Mixer",
3954 .info = msm_pcm_channel_mixer_info,
3955 .get = msm_pcm_channel_mixer_get,
3956 .put = msm_pcm_channel_mixer_put,
3957 .private_value = (unsigned long)&(mm18_channel_mux)
3958 },
3959 {
3960 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3961 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3962 .name = "MultiMedia19 Channel Mixer",
3963 .info = msm_pcm_channel_mixer_info,
3964 .get = msm_pcm_channel_mixer_get,
3965 .put = msm_pcm_channel_mixer_put,
3966 .private_value = (unsigned long)&(mm19_channel_mux)
3967 },
3968 {
3969 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3970 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3971 .name = "MultiMedia28 Channel Mixer",
3972 .info = msm_pcm_channel_mixer_info,
3973 .get = msm_pcm_channel_mixer_get,
3974 .put = msm_pcm_channel_mixer_put,
3975 .private_value = (unsigned long)&(mm28_channel_mux)
3976 },
3977 {
3978 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3979 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3980 .name = "MultiMedia29 Channel Mixer",
3981 .info = msm_pcm_channel_mixer_info,
3982 .get = msm_pcm_channel_mixer_get,
3983 .put = msm_pcm_channel_mixer_put,
3984 .private_value = (unsigned long)&(mm29_channel_mux)
3985 },
3986 {
3987 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3988 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303989 .name = "MultiMedia30 Channel Mixer",
3990 .info = msm_pcm_channel_mixer_info,
3991 .get = msm_pcm_channel_mixer_get,
3992 .put = msm_pcm_channel_mixer_put,
3993 .private_value = (unsigned long)&(mm30_channel_mux)
3994 },
3995 {
3996 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3997 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303998 .name = "MultiMedia1 Output Channel1",
3999 .info = msm_pcm_channel_weight_info,
4000 .get = msm_pcm_channel_weight_get,
4001 .put = msm_pcm_channel_weight_put,
4002 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4003 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
4004 },
4005 {
4006 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4007 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4008 .name = "MultiMedia1 Output Channel2",
4009 .info = msm_pcm_channel_weight_info,
4010 .get = msm_pcm_channel_weight_get,
4011 .put = msm_pcm_channel_weight_put,
4012 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4013 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
4014 },
4015 {
4016 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4017 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4018 .name = "MultiMedia1 Output Channel3",
4019 .info = msm_pcm_channel_weight_info,
4020 .get = msm_pcm_channel_weight_get,
4021 .put = msm_pcm_channel_weight_put,
4022 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4023 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
4024 },
4025 {
4026 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4027 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4028 .name = "MultiMedia1 Output Channel4",
4029 .info = msm_pcm_channel_weight_info,
4030 .get = msm_pcm_channel_weight_get,
4031 .put = msm_pcm_channel_weight_put,
4032 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4033 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
4034 },
4035 {
4036 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4037 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4038 .name = "MultiMedia1 Output Channel5",
4039 .info = msm_pcm_channel_weight_info,
4040 .get = msm_pcm_channel_weight_get,
4041 .put = msm_pcm_channel_weight_put,
4042 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4043 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
4044 },
4045 {
4046 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4047 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4048 .name = "MultiMedia1 Output Channel6",
4049 .info = msm_pcm_channel_weight_info,
4050 .get = msm_pcm_channel_weight_get,
4051 .put = msm_pcm_channel_weight_put,
4052 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4053 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
4054 },
4055 {
4056 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4057 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4058 .name = "MultiMedia1 Output Channel7",
4059 .info = msm_pcm_channel_weight_info,
4060 .get = msm_pcm_channel_weight_get,
4061 .put = msm_pcm_channel_weight_put,
4062 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4063 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
4064 },
4065 {
4066 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4067 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4068 .name = "MultiMedia1 Output Channel8",
4069 .info = msm_pcm_channel_weight_info,
4070 .get = msm_pcm_channel_weight_get,
4071 .put = msm_pcm_channel_weight_put,
4072 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4073 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
4074 },
4075 {
4076 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4077 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304078 .name = "MultiMedia1 Output Channel9",
4079 .info = msm_pcm_channel_weight_info,
4080 .get = msm_pcm_channel_weight_get,
4081 .put = msm_pcm_channel_weight_put,
4082 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4083 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4084 },
4085 {
4086 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4087 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4088 .name = "MultiMedia1 Output Channel10",
4089 .info = msm_pcm_channel_weight_info,
4090 .get = msm_pcm_channel_weight_get,
4091 .put = msm_pcm_channel_weight_put,
4092 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4093 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4094 },
4095 {
4096 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4097 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304098 .name = "MultiMedia1 Output Channel11",
4099 .info = msm_pcm_channel_weight_info,
4100 .get = msm_pcm_channel_weight_get,
4101 .put = msm_pcm_channel_weight_put,
4102 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4103 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4104 },
4105 {
4106 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4107 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4108 .name = "MultiMedia1 Output Channel12",
4109 .info = msm_pcm_channel_weight_info,
4110 .get = msm_pcm_channel_weight_get,
4111 .put = msm_pcm_channel_weight_put,
4112 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4113 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4114 },
4115 {
4116 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4117 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4118 .name = "MultiMedia1 Output Channel13",
4119 .info = msm_pcm_channel_weight_info,
4120 .get = msm_pcm_channel_weight_get,
4121 .put = msm_pcm_channel_weight_put,
4122 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4123 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4124 },
4125 {
4126 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4127 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4128 .name = "MultiMedia1 Output Channel14",
4129 .info = msm_pcm_channel_weight_info,
4130 .get = msm_pcm_channel_weight_get,
4131 .put = msm_pcm_channel_weight_put,
4132 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4133 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4134 },
4135 {
4136 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4137 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304138 .name = "MultiMedia2 Output Channel1",
4139 .info = msm_pcm_channel_weight_info,
4140 .get = msm_pcm_channel_weight_get,
4141 .put = msm_pcm_channel_weight_put,
4142 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4143 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4144 },
4145 {
4146 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4147 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4148 .name = "MultiMedia2 Output Channel2",
4149 .info = msm_pcm_channel_weight_info,
4150 .get = msm_pcm_channel_weight_get,
4151 .put = msm_pcm_channel_weight_put,
4152 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4153 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4154 },
4155 {
4156 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4157 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4158 .name = "MultiMedia2 Output Channel3",
4159 .info = msm_pcm_channel_weight_info,
4160 .get = msm_pcm_channel_weight_get,
4161 .put = msm_pcm_channel_weight_put,
4162 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4163 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4164 },
4165 {
4166 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4167 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4168 .name = "MultiMedia3 Output Channel1",
4169 .info = msm_pcm_channel_weight_info,
4170 .get = msm_pcm_channel_weight_get,
4171 .put = msm_pcm_channel_weight_put,
4172 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4173 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4174 },
4175 {
4176 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4177 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4178 .name = "MultiMedia3 Output Channel2",
4179 .info = msm_pcm_channel_weight_info,
4180 .get = msm_pcm_channel_weight_get,
4181 .put = msm_pcm_channel_weight_put,
4182 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4183 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4184 },
4185 {
4186 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4187 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304188 .name = "MultiMedia18 Output Channel1",
4189 .info = msm_pcm_channel_weight_info,
4190 .get = msm_pcm_channel_weight_get,
4191 .put = msm_pcm_channel_weight_put,
4192 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4193 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4194 },
4195 {
4196 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4197 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4198 .name = "MultiMedia18 Output Channel2",
4199 .info = msm_pcm_channel_weight_info,
4200 .get = msm_pcm_channel_weight_get,
4201 .put = msm_pcm_channel_weight_put,
4202 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4203 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4204 },
4205 {
4206 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4207 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4208 .name = "MultiMedia18 Output Channel3",
4209 .info = msm_pcm_channel_weight_info,
4210 .get = msm_pcm_channel_weight_get,
4211 .put = msm_pcm_channel_weight_put,
4212 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4213 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4214 },
4215 {
4216 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4217 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4218 .name = "MultiMedia18 Output Channel4",
4219 .info = msm_pcm_channel_weight_info,
4220 .get = msm_pcm_channel_weight_get,
4221 .put = msm_pcm_channel_weight_put,
4222 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4223 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4224 },
4225 {
4226 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4227 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4228 .name = "MultiMedia18 Output Channel5",
4229 .info = msm_pcm_channel_weight_info,
4230 .get = msm_pcm_channel_weight_get,
4231 .put = msm_pcm_channel_weight_put,
4232 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4233 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4234 },
4235 {
4236 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4237 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4238 .name = "MultiMedia18 Output Channel6",
4239 .info = msm_pcm_channel_weight_info,
4240 .get = msm_pcm_channel_weight_get,
4241 .put = msm_pcm_channel_weight_put,
4242 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4243 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4244 },
4245 {
4246 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4247 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4248 .name = "MultiMedia18 Output Channel7",
4249 .info = msm_pcm_channel_weight_info,
4250 .get = msm_pcm_channel_weight_get,
4251 .put = msm_pcm_channel_weight_put,
4252 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4253 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4254 },
4255 {
4256 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4257 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4258 .name = "MultiMedia18 Output Channel8",
4259 .info = msm_pcm_channel_weight_info,
4260 .get = msm_pcm_channel_weight_get,
4261 .put = msm_pcm_channel_weight_put,
4262 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4263 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4264 },
4265 {
4266 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4267 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4268 .name = "MultiMedia18 Output Channel9",
4269 .info = msm_pcm_channel_weight_info,
4270 .get = msm_pcm_channel_weight_get,
4271 .put = msm_pcm_channel_weight_put,
4272 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4273 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4274 },
4275 {
4276 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4277 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4278 .name = "MultiMedia18 Output Channel10",
4279 .info = msm_pcm_channel_weight_info,
4280 .get = msm_pcm_channel_weight_get,
4281 .put = msm_pcm_channel_weight_put,
4282 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4283 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4284 },
4285 {
4286 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4287 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4288 .name = "MultiMedia18 Output Channel11",
4289 .info = msm_pcm_channel_weight_info,
4290 .get = msm_pcm_channel_weight_get,
4291 .put = msm_pcm_channel_weight_put,
4292 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4293 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4294 },
4295 {
4296 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4297 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4298 .name = "MultiMedia18 Output Channel12",
4299 .info = msm_pcm_channel_weight_info,
4300 .get = msm_pcm_channel_weight_get,
4301 .put = msm_pcm_channel_weight_put,
4302 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4303 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4304 },
4305 {
4306 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4307 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4308 .name = "MultiMedia18 Output Channel13",
4309 .info = msm_pcm_channel_weight_info,
4310 .get = msm_pcm_channel_weight_get,
4311 .put = msm_pcm_channel_weight_put,
4312 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4313 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4314 },
4315 {
4316 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4317 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4318 .name = "MultiMedia18 Output Channel14",
4319 .info = msm_pcm_channel_weight_info,
4320 .get = msm_pcm_channel_weight_get,
4321 .put = msm_pcm_channel_weight_put,
4322 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4323 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4324 },
4325 {
4326 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4327 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4328 .name = "MultiMedia19 Output Channel1",
4329 .info = msm_pcm_channel_weight_info,
4330 .get = msm_pcm_channel_weight_get,
4331 .put = msm_pcm_channel_weight_put,
4332 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4333 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4334 },
4335 {
4336 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4337 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4338 .name = "MultiMedia19 Output Channel2",
4339 .info = msm_pcm_channel_weight_info,
4340 .get = msm_pcm_channel_weight_get,
4341 .put = msm_pcm_channel_weight_put,
4342 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4343 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4344 },
4345 {
4346 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4347 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4348 .name = "MultiMedia19 Output Channel3",
4349 .info = msm_pcm_channel_weight_info,
4350 .get = msm_pcm_channel_weight_get,
4351 .put = msm_pcm_channel_weight_put,
4352 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4353 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4354 },
4355 {
4356 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4357 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4358 .name = "MultiMedia19 Output Channel4",
4359 .info = msm_pcm_channel_weight_info,
4360 .get = msm_pcm_channel_weight_get,
4361 .put = msm_pcm_channel_weight_put,
4362 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4363 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4364 },
4365 {
4366 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4367 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4368 .name = "MultiMedia19 Output Channel5",
4369 .info = msm_pcm_channel_weight_info,
4370 .get = msm_pcm_channel_weight_get,
4371 .put = msm_pcm_channel_weight_put,
4372 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4373 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4374 },
4375 {
4376 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4377 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4378 .name = "MultiMedia19 Output Channel6",
4379 .info = msm_pcm_channel_weight_info,
4380 .get = msm_pcm_channel_weight_get,
4381 .put = msm_pcm_channel_weight_put,
4382 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4383 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4384 },
4385 {
4386 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4387 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4388 .name = "MultiMedia19 Output Channel7",
4389 .info = msm_pcm_channel_weight_info,
4390 .get = msm_pcm_channel_weight_get,
4391 .put = msm_pcm_channel_weight_put,
4392 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4393 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4394 },
4395 {
4396 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4397 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4398 .name = "MultiMedia19 Output Channel8",
4399 .info = msm_pcm_channel_weight_info,
4400 .get = msm_pcm_channel_weight_get,
4401 .put = msm_pcm_channel_weight_put,
4402 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4403 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4404 },
4405 {
4406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4407 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4408 .name = "MultiMedia19 Output Channel9",
4409 .info = msm_pcm_channel_weight_info,
4410 .get = msm_pcm_channel_weight_get,
4411 .put = msm_pcm_channel_weight_put,
4412 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4413 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4414 },
4415 {
4416 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4417 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4418 .name = "MultiMedia19 Output Channel10",
4419 .info = msm_pcm_channel_weight_info,
4420 .get = msm_pcm_channel_weight_get,
4421 .put = msm_pcm_channel_weight_put,
4422 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4423 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4424 },
4425 {
4426 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4427 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4428 .name = "MultiMedia19 Output Channel11",
4429 .info = msm_pcm_channel_weight_info,
4430 .get = msm_pcm_channel_weight_get,
4431 .put = msm_pcm_channel_weight_put,
4432 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4433 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4434 },
4435 {
4436 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4437 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4438 .name = "MultiMedia19 Output Channel12",
4439 .info = msm_pcm_channel_weight_info,
4440 .get = msm_pcm_channel_weight_get,
4441 .put = msm_pcm_channel_weight_put,
4442 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4443 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4444 },
4445 {
4446 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4447 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4448 .name = "MultiMedia19 Output Channel13",
4449 .info = msm_pcm_channel_weight_info,
4450 .get = msm_pcm_channel_weight_get,
4451 .put = msm_pcm_channel_weight_put,
4452 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4453 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4454 },
4455 {
4456 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4457 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4458 .name = "MultiMedia19 Output Channel14",
4459 .info = msm_pcm_channel_weight_info,
4460 .get = msm_pcm_channel_weight_get,
4461 .put = msm_pcm_channel_weight_put,
4462 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4463 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4464 },
4465 {
4466 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4467 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4468 .name = "MultiMedia28 Output Channel1",
4469 .info = msm_pcm_channel_weight_info,
4470 .get = msm_pcm_channel_weight_get,
4471 .put = msm_pcm_channel_weight_put,
4472 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4473 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4474 },
4475 {
4476 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4477 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4478 .name = "MultiMedia28 Output Channel2",
4479 .info = msm_pcm_channel_weight_info,
4480 .get = msm_pcm_channel_weight_get,
4481 .put = msm_pcm_channel_weight_put,
4482 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4483 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4484 },
4485 {
4486 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4487 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4488 .name = "MultiMedia28 Output Channel3",
4489 .info = msm_pcm_channel_weight_info,
4490 .get = msm_pcm_channel_weight_get,
4491 .put = msm_pcm_channel_weight_put,
4492 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4493 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4494 },
4495 {
4496 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4497 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4498 .name = "MultiMedia28 Output Channel4",
4499 .info = msm_pcm_channel_weight_info,
4500 .get = msm_pcm_channel_weight_get,
4501 .put = msm_pcm_channel_weight_put,
4502 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4503 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4504 },
4505 {
4506 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4507 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4508 .name = "MultiMedia28 Output Channel5",
4509 .info = msm_pcm_channel_weight_info,
4510 .get = msm_pcm_channel_weight_get,
4511 .put = msm_pcm_channel_weight_put,
4512 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4513 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4514 },
4515 {
4516 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4517 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4518 .name = "MultiMedia28 Output Channel6",
4519 .info = msm_pcm_channel_weight_info,
4520 .get = msm_pcm_channel_weight_get,
4521 .put = msm_pcm_channel_weight_put,
4522 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4523 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4524 },
4525 {
4526 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4527 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4528 .name = "MultiMedia28 Output Channel7",
4529 .info = msm_pcm_channel_weight_info,
4530 .get = msm_pcm_channel_weight_get,
4531 .put = msm_pcm_channel_weight_put,
4532 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4533 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4534 },
4535 {
4536 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4537 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4538 .name = "MultiMedia28 Output Channel8",
4539 .info = msm_pcm_channel_weight_info,
4540 .get = msm_pcm_channel_weight_get,
4541 .put = msm_pcm_channel_weight_put,
4542 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4543 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4544 },
4545 {
4546 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4547 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4548 .name = "MultiMedia28 Output Channel9",
4549 .info = msm_pcm_channel_weight_info,
4550 .get = msm_pcm_channel_weight_get,
4551 .put = msm_pcm_channel_weight_put,
4552 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4553 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4554 },
4555 {
4556 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4557 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4558 .name = "MultiMedia28 Output Channel10",
4559 .info = msm_pcm_channel_weight_info,
4560 .get = msm_pcm_channel_weight_get,
4561 .put = msm_pcm_channel_weight_put,
4562 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4563 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4564 },
4565 {
4566 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4567 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4568 .name = "MultiMedia28 Output Channel11",
4569 .info = msm_pcm_channel_weight_info,
4570 .get = msm_pcm_channel_weight_get,
4571 .put = msm_pcm_channel_weight_put,
4572 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4573 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4574 },
4575 {
4576 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4577 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4578 .name = "MultiMedia28 Output Channel12",
4579 .info = msm_pcm_channel_weight_info,
4580 .get = msm_pcm_channel_weight_get,
4581 .put = msm_pcm_channel_weight_put,
4582 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4583 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4584 },
4585 {
4586 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4587 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4588 .name = "MultiMedia28 Output Channel13",
4589 .info = msm_pcm_channel_weight_info,
4590 .get = msm_pcm_channel_weight_get,
4591 .put = msm_pcm_channel_weight_put,
4592 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4593 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4594 },
4595 {
4596 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4597 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4598 .name = "MultiMedia28 Output Channel14",
4599 .info = msm_pcm_channel_weight_info,
4600 .get = msm_pcm_channel_weight_get,
4601 .put = msm_pcm_channel_weight_put,
4602 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4603 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4604 },
4605 {
4606 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4607 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4608 .name = "MultiMedia29 Output Channel1",
4609 .info = msm_pcm_channel_weight_info,
4610 .get = msm_pcm_channel_weight_get,
4611 .put = msm_pcm_channel_weight_put,
4612 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4613 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4614 },
4615 {
4616 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4617 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4618 .name = "MultiMedia29 Output Channel2",
4619 .info = msm_pcm_channel_weight_info,
4620 .get = msm_pcm_channel_weight_get,
4621 .put = msm_pcm_channel_weight_put,
4622 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4623 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4624 },
4625 {
4626 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4627 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4628 .name = "MultiMedia29 Output Channel3",
4629 .info = msm_pcm_channel_weight_info,
4630 .get = msm_pcm_channel_weight_get,
4631 .put = msm_pcm_channel_weight_put,
4632 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4633 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4634 },
4635 {
4636 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4637 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4638 .name = "MultiMedia29 Output Channel4",
4639 .info = msm_pcm_channel_weight_info,
4640 .get = msm_pcm_channel_weight_get,
4641 .put = msm_pcm_channel_weight_put,
4642 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4643 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4644 },
4645 {
4646 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4647 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4648 .name = "MultiMedia29 Output Channel5",
4649 .info = msm_pcm_channel_weight_info,
4650 .get = msm_pcm_channel_weight_get,
4651 .put = msm_pcm_channel_weight_put,
4652 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4653 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4654 },
4655 {
4656 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4657 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4658 .name = "MultiMedia29 Output Channel6",
4659 .info = msm_pcm_channel_weight_info,
4660 .get = msm_pcm_channel_weight_get,
4661 .put = msm_pcm_channel_weight_put,
4662 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4663 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4664 },
4665 {
4666 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4667 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4668 .name = "MultiMedia29 Output Channel7",
4669 .info = msm_pcm_channel_weight_info,
4670 .get = msm_pcm_channel_weight_get,
4671 .put = msm_pcm_channel_weight_put,
4672 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4673 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4674 },
4675 {
4676 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4677 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4678 .name = "MultiMedia29 Output Channel8",
4679 .info = msm_pcm_channel_weight_info,
4680 .get = msm_pcm_channel_weight_get,
4681 .put = msm_pcm_channel_weight_put,
4682 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4683 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4684 },
4685 {
4686 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4687 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4688 .name = "MultiMedia29 Output Channel9",
4689 .info = msm_pcm_channel_weight_info,
4690 .get = msm_pcm_channel_weight_get,
4691 .put = msm_pcm_channel_weight_put,
4692 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4693 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4694 },
4695 {
4696 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4697 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4698 .name = "MultiMedia29 Output Channel10",
4699 .info = msm_pcm_channel_weight_info,
4700 .get = msm_pcm_channel_weight_get,
4701 .put = msm_pcm_channel_weight_put,
4702 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4703 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4704 },
4705 {
4706 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4707 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4708 .name = "MultiMedia29 Output Channel11",
4709 .info = msm_pcm_channel_weight_info,
4710 .get = msm_pcm_channel_weight_get,
4711 .put = msm_pcm_channel_weight_put,
4712 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4713 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4714 },
4715 {
4716 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4717 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4718 .name = "MultiMedia29 Output Channel12",
4719 .info = msm_pcm_channel_weight_info,
4720 .get = msm_pcm_channel_weight_get,
4721 .put = msm_pcm_channel_weight_put,
4722 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4723 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4724 },
4725 {
4726 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4727 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4728 .name = "MultiMedia29 Output Channel13",
4729 .info = msm_pcm_channel_weight_info,
4730 .get = msm_pcm_channel_weight_get,
4731 .put = msm_pcm_channel_weight_put,
4732 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4733 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4734 },
4735 {
4736 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4737 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4738 .name = "MultiMedia29 Output Channel14",
4739 .info = msm_pcm_channel_weight_info,
4740 .get = msm_pcm_channel_weight_get,
4741 .put = msm_pcm_channel_weight_put,
4742 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4743 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4744 },
4745 {
4746 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4747 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304748 .name = "MultiMedia30 Output Channel1",
4749 .info = msm_pcm_channel_weight_info,
4750 .get = msm_pcm_channel_weight_get,
4751 .put = msm_pcm_channel_weight_put,
4752 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4753 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
4754 },
4755 {
4756 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4757 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4758 .name = "MultiMedia30 Output Channel2",
4759 .info = msm_pcm_channel_weight_info,
4760 .get = msm_pcm_channel_weight_get,
4761 .put = msm_pcm_channel_weight_put,
4762 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4763 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
4764 },
4765 {
4766 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4767 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4768 .name = "MultiMedia30 Output Channel3",
4769 .info = msm_pcm_channel_weight_info,
4770 .get = msm_pcm_channel_weight_get,
4771 .put = msm_pcm_channel_weight_put,
4772 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4773 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
4774 },
4775 {
4776 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4777 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4778 .name = "MultiMedia30 Output Channel4",
4779 .info = msm_pcm_channel_weight_info,
4780 .get = msm_pcm_channel_weight_get,
4781 .put = msm_pcm_channel_weight_put,
4782 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4783 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
4784 },
4785 {
4786 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4787 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4788 .name = "MultiMedia30 Output Channel5",
4789 .info = msm_pcm_channel_weight_info,
4790 .get = msm_pcm_channel_weight_get,
4791 .put = msm_pcm_channel_weight_put,
4792 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4793 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
4794 },
4795 {
4796 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4797 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4798 .name = "MultiMedia30 Output Channel6",
4799 .info = msm_pcm_channel_weight_info,
4800 .get = msm_pcm_channel_weight_get,
4801 .put = msm_pcm_channel_weight_put,
4802 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4803 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
4804 },
4805 {
4806 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4807 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4808 .name = "MultiMedia30 Output Channel7",
4809 .info = msm_pcm_channel_weight_info,
4810 .get = msm_pcm_channel_weight_get,
4811 .put = msm_pcm_channel_weight_put,
4812 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4813 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
4814 },
4815 {
4816 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4817 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4818 .name = "MultiMedia30 Output Channel8",
4819 .info = msm_pcm_channel_weight_info,
4820 .get = msm_pcm_channel_weight_get,
4821 .put = msm_pcm_channel_weight_put,
4822 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4823 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
4824 },
4825 {
4826 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4827 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4828 .name = "MultiMedia30 Output Channel9",
4829 .info = msm_pcm_channel_weight_info,
4830 .get = msm_pcm_channel_weight_get,
4831 .put = msm_pcm_channel_weight_put,
4832 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4833 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
4834 },
4835 {
4836 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4837 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4838 .name = "MultiMedia30 Output Channel10",
4839 .info = msm_pcm_channel_weight_info,
4840 .get = msm_pcm_channel_weight_get,
4841 .put = msm_pcm_channel_weight_put,
4842 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4843 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
4844 },
4845 {
4846 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4847 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4848 .name = "MultiMedia30 Output Channel11",
4849 .info = msm_pcm_channel_weight_info,
4850 .get = msm_pcm_channel_weight_get,
4851 .put = msm_pcm_channel_weight_put,
4852 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4853 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
4854 },
4855 {
4856 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4857 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4858 .name = "MultiMedia30 Output Channel12",
4859 .info = msm_pcm_channel_weight_info,
4860 .get = msm_pcm_channel_weight_get,
4861 .put = msm_pcm_channel_weight_put,
4862 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4863 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
4864 },
4865 {
4866 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4867 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4868 .name = "MultiMedia30 Output Channel13",
4869 .info = msm_pcm_channel_weight_info,
4870 .get = msm_pcm_channel_weight_get,
4871 .put = msm_pcm_channel_weight_put,
4872 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4873 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
4874 },
4875 {
4876 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4877 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4878 .name = "MultiMedia30 Output Channel14",
4879 .info = msm_pcm_channel_weight_info,
4880 .get = msm_pcm_channel_weight_get,
4881 .put = msm_pcm_channel_weight_put,
4882 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4883 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
4884 },
4885 {
4886 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4887 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304888 .name = "MultiMedia1 Channel1",
4889 .info = msm_pcm_channel_input_be_info,
4890 .get = msm_pcm_channel_input_be_get,
4891 .put = msm_pcm_channel_input_be_put,
4892 .private_value = (unsigned long)&(mm1_ch1_enum)
4893 },
4894 {
4895 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4896 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4897 .name = "MultiMedia1 Channel2",
4898 .info = msm_pcm_channel_input_be_info,
4899 .get = msm_pcm_channel_input_be_get,
4900 .put = msm_pcm_channel_input_be_put,
4901 .private_value = (unsigned long)&(mm1_ch2_enum)
4902 },
4903 {
4904 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4905 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4906 .name = "MultiMedia1 Channel3",
4907 .info = msm_pcm_channel_input_be_info,
4908 .get = msm_pcm_channel_input_be_get,
4909 .put = msm_pcm_channel_input_be_put,
4910 .private_value = (unsigned long)&(mm1_ch3_enum)
4911 },
4912 {
4913 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4914 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4915 .name = "MultiMedia1 Channel4",
4916 .info = msm_pcm_channel_input_be_info,
4917 .get = msm_pcm_channel_input_be_get,
4918 .put = msm_pcm_channel_input_be_put,
4919 .private_value = (unsigned long)&(mm1_ch4_enum)
4920 },
4921 {
4922 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4923 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4924 .name = "MultiMedia1 Channel5",
4925 .info = msm_pcm_channel_input_be_info,
4926 .get = msm_pcm_channel_input_be_get,
4927 .put = msm_pcm_channel_input_be_put,
4928 .private_value = (unsigned long)&(mm1_ch5_enum)
4929 },
4930 {
4931 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4932 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4933 .name = "MultiMedia1 Channel6",
4934 .info = msm_pcm_channel_input_be_info,
4935 .get = msm_pcm_channel_input_be_get,
4936 .put = msm_pcm_channel_input_be_put,
4937 .private_value = (unsigned long)&(mm1_ch6_enum)
4938 },
4939 {
4940 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4941 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4942 .name = "MultiMedia1 Channel7",
4943 .info = msm_pcm_channel_input_be_info,
4944 .get = msm_pcm_channel_input_be_get,
4945 .put = msm_pcm_channel_input_be_put,
4946 .private_value = (unsigned long)&(mm1_ch7_enum)
4947 },
4948 {
4949 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4950 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4951 .name = "MultiMedia1 Channel8",
4952 .info = msm_pcm_channel_input_be_info,
4953 .get = msm_pcm_channel_input_be_get,
4954 .put = msm_pcm_channel_input_be_put,
4955 .private_value = (unsigned long)&(mm1_ch8_enum)
4956 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304957 {
4958 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4959 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304960 .name = "MultiMedia18 Channel1",
4961 .info = msm_pcm_channel_input_be_info,
4962 .get = msm_pcm_channel_input_be_get,
4963 .put = msm_pcm_channel_input_be_put,
4964 .private_value = (unsigned long)&(mm18_ch1_enum)
4965 },
4966 {
4967 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4968 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4969 .name = "MultiMedia18 Channel2",
4970 .info = msm_pcm_channel_input_be_info,
4971 .get = msm_pcm_channel_input_be_get,
4972 .put = msm_pcm_channel_input_be_put,
4973 .private_value = (unsigned long)&(mm18_ch2_enum)
4974 },
4975 {
4976 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4977 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4978 .name = "MultiMedia19 Channel1",
4979 .info = msm_pcm_channel_input_be_info,
4980 .get = msm_pcm_channel_input_be_get,
4981 .put = msm_pcm_channel_input_be_put,
4982 .private_value = (unsigned long)&(mm19_ch1_enum)
4983 },
4984 {
4985 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4986 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4987 .name = "MultiMedia19 Channel2",
4988 .info = msm_pcm_channel_input_be_info,
4989 .get = msm_pcm_channel_input_be_get,
4990 .put = msm_pcm_channel_input_be_put,
4991 .private_value = (unsigned long)&(mm19_ch2_enum)
4992 },
4993 {
4994 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4995 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4996 .name = "MultiMedia28 Channel1",
4997 .info = msm_pcm_channel_input_be_info,
4998 .get = msm_pcm_channel_input_be_get,
4999 .put = msm_pcm_channel_input_be_put,
5000 .private_value = (unsigned long)&(mm28_ch1_enum)
5001 },
5002 {
5003 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5004 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5005 .name = "MultiMedia28 Channel2",
5006 .info = msm_pcm_channel_input_be_info,
5007 .get = msm_pcm_channel_input_be_get,
5008 .put = msm_pcm_channel_input_be_put,
5009 .private_value = (unsigned long)&(mm28_ch2_enum)
5010 },
5011 {
5012 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5013 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5014 .name = "MultiMedia29 Channel1",
5015 .info = msm_pcm_channel_input_be_info,
5016 .get = msm_pcm_channel_input_be_get,
5017 .put = msm_pcm_channel_input_be_put,
5018 .private_value = (unsigned long)&(mm29_ch1_enum)
5019 },
5020 {
5021 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5022 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5023 .name = "MultiMedia29 Channel2",
5024 .info = msm_pcm_channel_input_be_info,
5025 .get = msm_pcm_channel_input_be_get,
5026 .put = msm_pcm_channel_input_be_put,
5027 .private_value = (unsigned long)&(mm29_ch2_enum)
5028 },
5029 {
5030 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5031 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305032 .name = "MultiMedia30 Channel1",
5033 .info = msm_pcm_channel_input_be_info,
5034 .get = msm_pcm_channel_input_be_get,
5035 .put = msm_pcm_channel_input_be_put,
5036 .private_value = (unsigned long)&(mm30_ch1_enum)
5037 },
5038 {
5039 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5040 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5041 .name = "MultiMedia30 Channel2",
5042 .info = msm_pcm_channel_input_be_info,
5043 .get = msm_pcm_channel_input_be_get,
5044 .put = msm_pcm_channel_input_be_put,
5045 .private_value = (unsigned long)&(mm30_ch2_enum)
5046 },
5047 {
5048 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5049 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305050 .name = "MultiMedia1 Output Channel Map",
5051 .info = msm_pcm_channel_output_map_info,
5052 .get = msm_pcm_channel_output_map_get,
5053 .put = msm_pcm_channel_output_map_put,
5054 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5055 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
5056 },
5057 {
5058 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5059 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5060 .name = "MultiMedia2 Output Channel Map",
5061 .info = msm_pcm_channel_output_map_info,
5062 .get = msm_pcm_channel_output_map_get,
5063 .put = msm_pcm_channel_output_map_put,
5064 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5065 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
5066 },
5067 {
5068 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5069 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5070 .name = "MultiMedia3 Output Channel Map",
5071 .info = msm_pcm_channel_output_map_info,
5072 .get = msm_pcm_channel_output_map_get,
5073 .put = msm_pcm_channel_output_map_put,
5074 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5075 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
5076 },
5077 {
5078 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5079 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5080 .name = "MultiMedia4 Output Channel Map",
5081 .info = msm_pcm_channel_output_map_info,
5082 .get = msm_pcm_channel_output_map_get,
5083 .put = msm_pcm_channel_output_map_put,
5084 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5085 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
5086 },
5087 {
5088 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5089 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5090 .name = "MultiMedia5 Output Channel Map",
5091 .info = msm_pcm_channel_output_map_info,
5092 .get = msm_pcm_channel_output_map_get,
5093 .put = msm_pcm_channel_output_map_put,
5094 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5095 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
5096 },
5097 {
5098 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5099 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5100 .name = "MultiMedia6 Output Channel Map",
5101 .info = msm_pcm_channel_output_map_info,
5102 .get = msm_pcm_channel_output_map_get,
5103 .put = msm_pcm_channel_output_map_put,
5104 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5105 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
5106 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05305107 {
5108 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5109 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5110 .name = "MultiMedia18 Output Channel Map",
5111 .info = msm_pcm_channel_output_map_info,
5112 .get = msm_pcm_channel_output_map_get,
5113 .put = msm_pcm_channel_output_map_put,
5114 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5115 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
5116 },
5117 {
5118 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5119 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5120 .name = "MultiMedia19 Output Channel Map",
5121 .info = msm_pcm_channel_output_map_info,
5122 .get = msm_pcm_channel_output_map_get,
5123 .put = msm_pcm_channel_output_map_put,
5124 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5125 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
5126 },
5127 {
5128 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5129 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5130 .name = "MultiMedia28 Output Channel Map",
5131 .info = msm_pcm_channel_output_map_info,
5132 .get = msm_pcm_channel_output_map_get,
5133 .put = msm_pcm_channel_output_map_put,
5134 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5135 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
5136 },
5137 {
5138 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5139 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5140 .name = "MultiMedia29 Output Channel Map",
5141 .info = msm_pcm_channel_output_map_info,
5142 .get = msm_pcm_channel_output_map_get,
5143 .put = msm_pcm_channel_output_map_put,
5144 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5145 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
5146 },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305147 {
5148 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5149 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5150 .name = "MultiMedia30 Output Channel Map",
5151 .info = msm_pcm_channel_output_map_info,
5152 .get = msm_pcm_channel_output_map_get,
5153 .put = msm_pcm_channel_output_map_put,
5154 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5155 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
5156 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305157};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305158
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305159static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
5160 struct snd_ctl_elem_value *ucontrol)
5161{
5162 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
5163 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
5164 ucontrol->value.integer.value[0]);
5165 return 0;
5166}
5167
5168static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
5169 struct snd_ctl_elem_value *ucontrol)
5170{
5171 msm_ec_ref_ch = ucontrol->value.integer.value[0];
5172 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
5173 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
5174 return 0;
5175}
5176
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305177static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
5178 struct snd_ctl_elem_value *ucontrol)
5179{
5180 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
5181 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
5182 ucontrol->value.integer.value[0]);
5183 return 0;
5184}
5185
5186static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
5187 struct snd_ctl_elem_value *ucontrol)
5188{
5189 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
5190 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
5191 __func__, msm_ec_ref_ch_downmixed);
5192 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
5193 return 0;
5194}
5195
5196static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
5197 struct snd_ctl_elem_value *ucontrol)
5198{
5199 int i = 0, ret = 0;
5200 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
5201 int out_channel_idx = ((struct soc_multi_mixer_control *)
5202 kcontrol->private_value)->shift;
5203
5204 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
5205 weights[i] = ucontrol->value.integer.value[i];
5206
5207 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
5208 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
5209 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
5210 return ret;
5211}
5212
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305213static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305214 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
5215 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305216
5217static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
5218 struct snd_ctl_elem_value *ucontrol)
5219{
5220 switch (msm_ec_ref_bit_format) {
5221 case SNDRV_PCM_FORMAT_S24_LE:
5222 ucontrol->value.integer.value[0] = 2;
5223 break;
5224 case SNDRV_PCM_FORMAT_S16_LE:
5225 ucontrol->value.integer.value[0] = 1;
5226 break;
5227 default:
5228 ucontrol->value.integer.value[0] = 0;
5229 break;
5230 }
5231 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
5232 __func__, ucontrol->value.integer.value[0]);
5233 return 0;
5234}
5235
5236static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
5237 struct snd_ctl_elem_value *ucontrol)
5238{
5239 u16 bit_width = 0;
5240
5241 switch (ucontrol->value.integer.value[0]) {
5242 case 2:
5243 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
5244 break;
5245 case 1:
5246 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
5247 break;
5248 default:
5249 msm_ec_ref_bit_format = 0;
5250 break;
5251 }
5252
5253 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5254 bit_width = 16;
5255 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5256 bit_width = 24;
5257
5258 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5259 __func__, msm_ec_ref_bit_format);
5260 adm_ec_ref_rx_bit_width(bit_width);
5261 return 0;
5262}
5263
5264static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5265
5266static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5267 struct snd_ctl_elem_value *ucontrol)
5268{
5269 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5270 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5271 __func__, ucontrol->value.integer.value[0]);
5272 return 0;
5273}
5274
5275static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5276 struct snd_ctl_elem_value *ucontrol)
5277{
5278 switch (ucontrol->value.integer.value[0]) {
5279 case 0:
5280 msm_ec_ref_sampling_rate = 0;
5281 break;
5282 case 1:
5283 msm_ec_ref_sampling_rate = 8000;
5284 break;
5285 case 2:
5286 msm_ec_ref_sampling_rate = 16000;
5287 break;
5288 case 3:
5289 msm_ec_ref_sampling_rate = 32000;
5290 break;
5291 case 4:
5292 msm_ec_ref_sampling_rate = 44100;
5293 break;
5294 case 5:
5295 msm_ec_ref_sampling_rate = 48000;
5296 break;
5297 case 6:
5298 msm_ec_ref_sampling_rate = 96000;
5299 break;
5300 case 7:
5301 msm_ec_ref_sampling_rate = 192000;
5302 break;
5303 case 8:
5304 msm_ec_ref_sampling_rate = 384000;
5305 break;
5306 default:
5307 msm_ec_ref_sampling_rate = 48000;
5308 break;
5309 }
5310 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5311 __func__, msm_ec_ref_sampling_rate);
5312 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5313 return 0;
5314}
5315
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305316static int get_ec_ref_port_id(int value, int *index)
5317{
5318 int port_id;
5319
5320 switch (value) {
5321 case 0:
5322 *index = 0;
5323 port_id = AFE_PORT_INVALID;
5324 break;
5325 case 1:
5326 *index = 1;
5327 port_id = SLIMBUS_0_RX;
5328 break;
5329 case 2:
5330 *index = 2;
5331 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5332 break;
5333 case 3:
5334 *index = 3;
5335 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5336 break;
5337 case 4:
5338 *index = 4;
5339 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5340 break;
5341 case 5:
5342 *index = 5;
5343 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5344 break;
5345 case 6:
5346 *index = 6;
5347 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5348 break;
5349 case 7:
5350 *index = 7;
5351 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5352 break;
5353 case 9:
5354 *index = 9;
5355 port_id = SLIMBUS_5_RX;
5356 break;
5357 case 10:
5358 *index = 10;
5359 port_id = SLIMBUS_1_TX;
5360 break;
5361 case 11:
5362 *index = 11;
5363 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5364 break;
5365 case 12:
5366 *index = 12;
5367 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5368 break;
5369 case 13:
5370 *index = 13;
5371 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5372 break;
5373 case 14:
5374 *index = 14;
5375 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5376 break;
5377 case 15:
5378 *index = 15;
5379 port_id = SLIMBUS_6_RX;
5380 break;
5381 case 16:
5382 *index = 16;
5383 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5384 break;
5385 case 17:
5386 *index = 17;
5387 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5388 break;
5389 case 18:
5390 *index = 18;
5391 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5392 break;
5393 case 19:
5394 *index = 19;
5395 port_id = AFE_PORT_ID_USB_RX;
5396 break;
5397 case 20:
5398 *index = 20;
5399 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5400 break;
5401 case 21:
5402 *index = 21;
5403 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5404 break;
5405 case 22:
5406 *index = 22;
5407 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5408 break;
5409 case 23:
5410 *index = 23;
5411 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5412 break;
5413 case 24:
5414 *index = 24;
5415 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5416 break;
5417 case 25:
5418 *index = 25;
5419 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5420 break;
5421 case 26:
5422 *index = 26;
5423 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5424 break;
5425 case 27:
5426 *index = 27;
5427 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5428 break;
5429 case 28:
5430 *index = 28;
5431 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5432 break;
5433 case 29:
5434 *index = 29;
5435 port_id = SLIMBUS_7_RX;
5436 break;
5437 case 30:
5438 *index = 30;
5439 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5440 break;
5441 case 31:
5442 *index = 31;
5443 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5444 break;
5445 case 32:
5446 *index = 32;
5447 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5448 break;
5449 case 33:
5450 *index = 33;
5451 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5452 break;
5453 case 34:
5454 *index = 34;
5455 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5456 break;
5457 case 35:
5458 *index = 35;
5459 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5460 break;
5461 case 36:
5462 *index = 36;
5463 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5464 break;
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005465 case 37:
5466 *index = 37;
5467 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5468 break;
Vignesh Kulothungan6f4285c2019-10-29 16:17:00 -07005469 case 38:
5470 *index = 38;
5471 port_id = AFE_PORT_ID_SENARY_MI2S_RX;
5472 break;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305473 default:
5474 *index = 0; /* NONE */
5475 pr_err("%s: Invalid value %d\n", __func__, value);
5476 port_id = AFE_PORT_INVALID;
5477 break;
5478 }
5479
5480 return port_id;
5481}
5482
5483static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5484 struct snd_ctl_elem_value *ucontrol)
5485{
5486 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5487 mutex_lock(&routing_lock);
5488 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5489 mutex_unlock(&routing_lock);
5490
5491 return 0;
5492}
5493
5494static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5495 struct snd_ctl_elem_value *ucontrol)
5496{
5497 int value = ucontrol->value.integer.value[0];
5498
5499 mutex_lock(&routing_lock);
5500 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5501 &afe_loopback_tx_port_index);
5502 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5503 __func__, afe_loopback_tx_port_index);
5504 mutex_unlock(&routing_lock);
5505
5506 return 0;
5507}
5508
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305509static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5510 "32000", "44100", "48000", "96000", "192000", "384000"};
5511
5512static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005513 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_ch_text), ec_ref_ch_text),
5514 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_bit_format_text),
5515 ec_ref_bit_format_text),
5516 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rate_text), ec_ref_rate_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305517};
5518
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305519static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5520 "PRI_MI2S_TX", "SEC_MI2S_TX",
5521 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5522 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5523 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5524 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305525 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
5526 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005527 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305528 "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 -07005529 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
Vignesh Kulothungan6f4285c2019-10-29 16:17:00 -07005530 "DISPLAY_PORT1", "SEN_MI2S_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305531};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305532
5533static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5534 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5535};
5536
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305537static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5538 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5539 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5540 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5541 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5542 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5543 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5544 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5545 msm_route_ec_ref_params_enum[0],
5546 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5547 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5548 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5549 msm_ec_ref_chmixer_weights_put),
5550 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5551 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5552 msm_ec_ref_chmixer_weights_put),
5553 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
5554 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5555 msm_ec_ref_chmixer_weights_put),
5556 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
5557 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5558 msm_ec_ref_chmixer_weights_put),
5559 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5560 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5561 msm_ec_ref_chmixer_weights_put),
5562 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5563 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5564 msm_ec_ref_chmixer_weights_put),
5565 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5566 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5567};
5568
5569static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5570 struct snd_ctl_elem_value *ucontrol)
5571{
5572 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5573 mutex_lock(&routing_lock);
5574 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5575 mutex_unlock(&routing_lock);
5576
5577 return 0;
5578}
5579
5580static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5581 struct snd_ctl_elem_value *ucontrol)
5582{
5583 int value = ucontrol->value.integer.value[0];
5584 struct snd_soc_dapm_widget *widget =
5585 snd_soc_dapm_kcontrol_widget(kcontrol);
5586 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5587 struct snd_soc_dapm_update *update = NULL;
5588
5589 mutex_lock(&routing_lock);
5590 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5591 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5592 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5593 __func__, msm_route_ec_ref_rx);
5594 mutex_unlock(&routing_lock);
5595
5596 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5597 msm_route_ec_ref_rx, e, update);
5598 return 0;
5599}
5600
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5602 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5603 msm_route_ec_ref_rx_enum[0],
5604 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5605
5606static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5607 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5608 msm_route_ec_ref_rx_enum[0],
5609 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5610
5611static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5612 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5613 msm_route_ec_ref_rx_enum[0],
5614 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5615
5616static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5617 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5618 msm_route_ec_ref_rx_enum[0],
5619 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5620
5621static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5622 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5623 msm_route_ec_ref_rx_enum[0],
5624 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5625
5626static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5627 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5628 msm_route_ec_ref_rx_enum[0],
5629 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5630
5631static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5632 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5633 msm_route_ec_ref_rx_enum[0],
5634 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5635
5636static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5637 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5638 msm_route_ec_ref_rx_enum[0],
5639 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5640
Asish Bhattacharya34504582017-08-08 12:55:01 +05305641static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5642 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5643 msm_route_ec_ref_rx_enum[0],
5644 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5645
Laxminath Kasam38070be2017-08-17 18:21:59 +05305646static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5647 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5648 msm_route_ec_ref_rx_enum[0],
5649 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5650
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305651static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5652 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5653 msm_route_ec_ref_rx_enum[0],
5654 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5655
5656static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5657 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5658 msm_route_ec_ref_rx_enum[0],
5659 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5660
5661static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5662 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5663 msm_route_ec_ref_rx_enum[0],
5664 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5665
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305666static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5667 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5668 msm_route_ec_ref_rx_enum[0],
5669 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5670
5671static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5672 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5673 msm_route_ec_ref_rx_enum[0],
5674 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5675
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5677 struct snd_ctl_elem_value *ucontrol)
5678{
5679 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5680
5681 mutex_lock(&routing_lock);
5682 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5683 mutex_unlock(&routing_lock);
5684 return 0;
5685}
5686
5687static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5688 struct snd_ctl_elem_value *ucontrol)
5689{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305690 struct snd_soc_dapm_widget *widget =
5691 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305692 int mux = ucontrol->value.enumerated.item[0];
5693 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5694 int ret = 1;
5695 bool state = true;
5696 uint16_t ext_ec_ref_port_id;
5697 struct snd_soc_dapm_update *update = NULL;
5698
5699 if (mux >= e->items) {
5700 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5701 return -EINVAL;
5702 }
5703
5704 mutex_lock(&routing_lock);
5705 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5706
5707 switch (msm_route_ext_ec_ref) {
5708 case EXT_EC_REF_PRI_MI2S_TX:
5709 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5710 break;
5711 case EXT_EC_REF_SEC_MI2S_TX:
5712 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5713 break;
5714 case EXT_EC_REF_TERT_MI2S_TX:
5715 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5716 break;
5717 case EXT_EC_REF_QUAT_MI2S_TX:
5718 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5719 break;
5720 case EXT_EC_REF_QUIN_MI2S_TX:
5721 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5722 break;
5723 case EXT_EC_REF_SLIM_1_TX:
5724 ext_ec_ref_port_id = SLIMBUS_1_TX;
5725 break;
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005726 case EXT_EC_REF_PRI_TDM_TX:
5727 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
5728 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005729 case EXT_EC_REF_SEC_TDM_TX:
5730 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5731 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305732 case EXT_EC_REF_NONE:
5733 default:
5734 ext_ec_ref_port_id = AFE_PORT_INVALID;
5735 state = false;
5736 break;
5737 }
5738
5739 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5740 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5741
5742 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5743 mutex_unlock(&routing_lock);
5744 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5745 update);
5746 } else {
5747 ret = -EINVAL;
5748 mutex_unlock(&routing_lock);
5749 }
5750 return ret;
5751}
5752
5753static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5754 "SEC_MI2S_TX", "TERT_MI2S_TX",
5755 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005756 "SLIM_1_TX", "PRI_TDM_TX",
5757 "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305758
5759static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5760 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5761};
5762
5763static const struct snd_kcontrol_new voc_ext_ec_mux =
5764 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5765 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5766
5767
5768static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005801 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305803 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005805 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305807 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005809 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305811 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005813 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305815 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005817 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305819 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005821 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305823 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005825 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305827 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005829 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305831 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005833 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305835 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005837 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305839 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005841 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5842 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305843 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5844 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305845 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5846 MSM_BACKEND_DAI_PRI_I2S_RX,
5847 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005849 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5850 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305851 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005853 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5854 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305855 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5856 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305857 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5858 MSM_BACKEND_DAI_PRI_I2S_RX,
5859 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5860 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305861};
5862
5863static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005864 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005868 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005872 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005876 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005880 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305882 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005884 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005888 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305890 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005892 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305894 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005896 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305898 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005900 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305902 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005904 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5905 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305906 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005908 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5909 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305910 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005912 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5913 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305914 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005916 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5917 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305918 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005920 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5921 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305922 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005924 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5925 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005928 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5929 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305930 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005932 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5933 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305934 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005936 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5937 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305938 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5939 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305940 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5941 MSM_BACKEND_DAI_SEC_I2S_RX,
5942 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005944 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5945 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305946 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005948 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5949 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305950 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5951 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305952 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5953 MSM_BACKEND_DAI_SEC_I2S_RX,
5954 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5955 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305956};
5957
Ralf Herzc8701f72018-06-20 11:37:35 +02005958static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005959 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005960 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305961 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005963 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005964 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305965 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005967 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005968 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305969 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005971 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005972 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305973 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005975 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005976 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305977 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005979 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005980 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305981 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005983 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005984 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305985 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005987 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005988 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305989 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005991 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005992 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305993 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005995 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005996 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305997 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005999 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006000 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306001 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006003 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006004 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306005 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006007 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006008 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306009 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006011 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006012 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306013 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006015 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006016 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306017 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006019 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006020 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306021 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006023 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006024 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306025 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006027 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006028 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306029 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006031 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006032 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306033 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6034 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306035 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6036 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6037 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006039 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006040 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306041 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006043 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006044 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6045 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6046 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306047 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6048 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6049 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6050 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006051};
6052
6053static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
6054 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6056 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
6058 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6060 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
6062 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6064 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
6066 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6068 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
6070 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6072 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
6074 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6075 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6076 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6077 msm_routing_put_audio_mixer),
6078 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6079 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6080 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6081 msm_routing_put_audio_mixer),
6082 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6083 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6084 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6085 msm_routing_put_audio_mixer),
6086 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6087 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6088 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6089 msm_routing_put_audio_mixer),
6090 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6091 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6092 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6093 msm_routing_put_audio_mixer),
6094 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6095 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6096 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6097 msm_routing_put_audio_mixer),
6098 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6099 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6100 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6101 msm_routing_put_audio_mixer),
6102 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6103 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6104 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6105 msm_routing_put_audio_mixer),
6106 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6107 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6108 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6109 msm_routing_put_audio_mixer),
6110 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6111 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6112 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6113 msm_routing_put_audio_mixer),
6114 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6115 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6116 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6117 msm_routing_put_audio_mixer),
6118 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6119 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6120 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6121 msm_routing_put_audio_mixer),
6122 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6123 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6124 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6125 msm_routing_put_audio_mixer),
6126 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6127 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6128 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6129 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306130 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6131 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6132 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6133 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006134 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6135 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6136 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6137 msm_routing_put_audio_mixer),
6138 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6139 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306140 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6141 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306142 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6143 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6144 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6145 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306146};
6147
6148static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006149 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6150 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006153 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6154 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306155 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006157 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6158 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306159 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006161 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6162 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306163 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006165 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6166 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306167 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006169 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6170 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306171 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006173 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6174 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306175 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006177 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6178 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306179 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006181 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6182 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306183 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006185 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6186 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306187 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006189 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6190 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306191 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006193 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6194 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306195 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006197 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6198 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306199 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006201 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6202 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306203 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006205 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6206 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306207 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006209 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6210 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306211 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6212 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306213 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6214 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6215 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6216 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306217};
6218
6219static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006220 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6221 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306222 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006224 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6225 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306226 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006228 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6229 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306230 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006232 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6233 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306234 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006236 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6237 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306238 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006240 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6241 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306242 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006244 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6245 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306246 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006248 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6249 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306250 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006252 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6253 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306254 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006256 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6257 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306258 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006260 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6261 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306262 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006264 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6265 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306266 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006268 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6269 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306270 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006272 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6273 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306274 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006276 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6277 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306278 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006280 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6281 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306282 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006284 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6285 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306286 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006288 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6289 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306290 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006292 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6293 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306294 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6295 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306296 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6297 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6298 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006300 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6301 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306302 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006304 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306306 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306308 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6310 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306312};
6313
6314static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006315 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6316 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306317 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006319 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6320 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306321 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006323 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6324 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306325 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006327 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6328 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306329 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006331 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6332 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306333 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006335 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6336 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306337 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006339 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6340 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306341 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006343 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6344 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306345 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006347 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6348 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306349 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006351 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6352 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306353 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006355 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6356 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306357 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006359 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6360 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306361 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006363 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306365 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006367 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306369 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006371 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306373 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006375 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306377 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006379 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306381 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006383 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306385 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006387 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306389 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306391 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6393 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006395 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306397 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006399 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306401 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306403 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6405 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306407};
6408
6409static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006410 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6411 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306412 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006414 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6415 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306416 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006418 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6419 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306420 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006422 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6423 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306424 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006426 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6427 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306428 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006430 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306432 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006434 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306436 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006438 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306440 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006442 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306444 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006446 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306448 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006450 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306452 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006454 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306456 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006458 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306460 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006462 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306464 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006466 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306468 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006470 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306472 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006474 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306476 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006478 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306480 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006482 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306484 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306486 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_MI2S_RX,
6488 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006490 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306492 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006494 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306496 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306498 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_MI2S_RX,
6500 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306502};
6503
6504static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006521 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006557 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006561 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006565 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006569 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006573 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006577 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306579 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306581 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6583 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006585 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306587 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006589 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306591 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306593 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6595 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306597};
6598
6599static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006600 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306602 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006604 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306606 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006608 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006612 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006616 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306618 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006620 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006624 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006628 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306630 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006632 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006636 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306638 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006640 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006644 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006648 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306650 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006652 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306654 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006656 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006660 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306662 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006664 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306666 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006668 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306670 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006672 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306674 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306676 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6678 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006680 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306682 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006684 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306686 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306688 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6690 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306692
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693};
6694
Karthikeyan Manic3700752019-03-11 18:33:53 -07006695static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6696 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6698 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
6700 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6702 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
6704 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6705 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6706 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6707 msm_routing_put_audio_mixer),
6708 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6709 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6710 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6711 msm_routing_put_audio_mixer),
6712 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6713 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6714 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6715 msm_routing_put_audio_mixer),
6716 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6717 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6718 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6719 msm_routing_put_audio_mixer),
6720 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6721 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6722 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6723 msm_routing_put_audio_mixer),
6724 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6725 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6726 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6727 msm_routing_put_audio_mixer),
6728 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6729 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6730 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6731 msm_routing_put_audio_mixer),
6732 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6733 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6734 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6735 msm_routing_put_audio_mixer),
6736 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6737 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6738 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6739 msm_routing_put_audio_mixer),
6740 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6741 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6742 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6743 msm_routing_put_audio_mixer),
6744 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6746 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
6748 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6749 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6750 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6751 msm_routing_put_audio_mixer),
6752 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6753 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6754 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6755 msm_routing_put_audio_mixer),
6756 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6757 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6758 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6759 msm_routing_put_audio_mixer),
6760 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6761 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6762 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6763 msm_routing_put_audio_mixer),
6764 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6765 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6766 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6767 msm_routing_put_audio_mixer),
6768 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6769 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6770 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6771 msm_routing_put_audio_mixer),
6772 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6774 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
6776 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6778 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
6780 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6781 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6782 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6783 msm_routing_put_audio_mixer),
6784
6785};
6786
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306787static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006788 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006792 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306794 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006796 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6797 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306798 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006800 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6801 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306802 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006804 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6805 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306806 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006808 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6809 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306810 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006812 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6813 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306814 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006816 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6817 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306818 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006820 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6821 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306822 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006824 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6825 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306826 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006828 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6829 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306830 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006832 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6833 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306834 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006836 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6837 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306838 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006840 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6841 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306842 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006844 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6845 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306846 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006848 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6849 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306850 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006852 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6853 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306854 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6855 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306856 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6857 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6858 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006860 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6861 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306862 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006864 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306866 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306868 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6869 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6870 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6871 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306872};
6873
6874static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006875 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6876 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306877 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6878 msm_routing_put_audio_mixer),
6879};
6880
6881static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006882 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6883 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306884 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006886 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6887 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306888 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006890 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6891 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306892 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006894 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6895 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306896 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006898 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6899 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306900 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006902 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006906 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006910 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006914 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6915 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306916 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006918 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6919 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306920 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006922 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006926 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6927 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306928 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006930 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6931 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306932 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006934 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6935 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306936 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006938 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6939 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306940 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006942 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6943 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306944 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006950 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306952 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006954 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6955 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306956 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6957 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306958 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6959 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6960 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006966 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306968 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306970 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6971 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6972 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6973 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306974};
6975
6976static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006977 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6978 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306979 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006981 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6982 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306983 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006985 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6986 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006989 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006993 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306995 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006997 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007001 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7002 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307003 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007005 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7006 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307007 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007009 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7010 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307011 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007033 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307035 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007045 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307047 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007049 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307051 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307053 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_PRI_MI2S_RX,
7055 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007057 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307059 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007061 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7062 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307063 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7064 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307065 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_PRI_MI2S_RX,
7067 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Jhansi Konathala8cf03d42019-08-20 19:27:39 +05307069 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_PRI_MI2S_RX,
7071 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307073};
7074
7075static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007076 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7077 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307078 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007096 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7097 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307098 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007100 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7101 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307102 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007128 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307130 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007132 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007136 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
7140};
7141
7142static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007143 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7144 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307145 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007147 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307149 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007151 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307153 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007155 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307157 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007159 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7160 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307161 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007163 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7164 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307165 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007167 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7168 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307169 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007171 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7172 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307173 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007175 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307177 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007203 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
7207};
7208
Ralf Herz29e07132019-07-26 15:15:21 +02007209static const struct snd_kcontrol_new pri_meta_mi2s_rx_mixer_controls[] = {
7210 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7212 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
7214 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7216 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
7218 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7219 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7220 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7221 msm_routing_put_audio_mixer),
7222 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7223 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7224 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7225 msm_routing_put_audio_mixer),
7226 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7228 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
7230 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7232 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
7234 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7235 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7236 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7237 msm_routing_put_audio_mixer),
7238 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7239 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7240 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7241 msm_routing_put_audio_mixer),
7242 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7243 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7244 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7245 msm_routing_put_audio_mixer),
7246 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7247 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7248 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7249 msm_routing_put_audio_mixer),
7250 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7251 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7252 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7253 msm_routing_put_audio_mixer),
7254 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7255 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7256 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7257 msm_routing_put_audio_mixer),
7258 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7259 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7260 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7261 msm_routing_put_audio_mixer),
7262 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7263 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7264 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7265 msm_routing_put_audio_mixer),
7266 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7268 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
7270 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7272 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
7274 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7276 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
7278 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7280 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
7282 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7284 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
7286 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7288 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
7290 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7292 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
7294 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7296 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
7298
7299};
7300
7301static const struct snd_kcontrol_new sec_meta_mi2s_rx_mixer_controls[] = {
7302 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7304 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
7306 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7308 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
7310 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7312 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
7314 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7316 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
7318 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7320 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
7322 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7324 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
7326 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7328 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
7330 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7332 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
7334 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7336 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
7338 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7340 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
7342 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7344 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
7346 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7348 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
7350 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7352 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
7354 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7356 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
7358 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7359 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7360 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7361 msm_routing_put_audio_mixer),
7362 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7364 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
7366 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7368 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
7370 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7371 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7372 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7373 msm_routing_put_audio_mixer),
7374 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7375 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7376 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7377 msm_routing_put_audio_mixer),
7378 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7379 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7380 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7381 msm_routing_put_audio_mixer),
7382 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7383 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7384 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7385 msm_routing_put_audio_mixer),
7386 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7387 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7388 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7389 msm_routing_put_audio_mixer),
7390};
7391
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307392static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007461 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307463 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007465 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7466 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307467 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7468 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307469 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_HDMI_RX,
7471 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007477 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307481 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_HDMI_RX,
7483 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307485};
7486
7487static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007532 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307534 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007536 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307538 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007540 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307542 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007544 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307546 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007548 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307550 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307552 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7554 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307556};
7557
Karthikeyan Mani57550082018-05-03 18:43:58 -07007558static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7559 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
7563 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7565 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
7567 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
7571 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7573 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
7575 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
7579 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7581 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
7583 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7585 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
7587 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
7591 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7593 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
7595 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7597 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
7599 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7601 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
7603 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7605 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
7607 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7609 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
7611 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7613 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
7615 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7617 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
7619 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307623 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7625 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007627};
7628
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307629 /* incall music delivery mixer */
7630static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007631 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307633 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007635 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307637 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Anurag Chouhanb2a024a2019-10-09 11:39:08 +05307639 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
7641 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007643 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307645 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007647 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7648 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307649 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7650 msm_routing_put_audio_mixer),
7651};
7652
7653static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007654 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307656 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007666 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307668 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
7670};
7671
7672static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
7689};
7690
7691static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007692 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7693 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307694 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007696 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007736 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007740 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007744 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007748 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007752 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307754 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307756 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7758 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307760};
7761
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307762static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7763 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7765 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
7767 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7769 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
7771 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7773 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
7775 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7777 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
7779 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7781 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
7783 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7785 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
7787 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7789 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
7791 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7793 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
7795 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7797 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
7799 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7801 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
7803 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7805 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
7807 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7809 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
7811 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7813 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
7815 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7817 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
7819 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7821 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
7823 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7825 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307827 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7829 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307831};
7832
7833static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7834 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7836 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
7838 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7840 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
7842 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7844 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
7846 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7848 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
7850 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7852 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
7854 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7856 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
7858 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7860 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
7862 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7864 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
7866 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7868 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
7870 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7872 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
7874 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7876 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
7878 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7880 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
7882 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7884 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
7886 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7888 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
7890 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7892 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
7894 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7896 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307898 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7900 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307902};
7903
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307904static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7905 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7907 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
7909 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7911 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
7913 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7915 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
7917 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7919 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
7921 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7923 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
7925 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7927 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
7929 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7931 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
7933 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7935 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
7937 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7939 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
7941 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7943 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
7945 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7947 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
7949 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7951 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
7953 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7955 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
7957 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7959 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
7961 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7963 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
7965 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7967 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307969 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7971 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307973};
7974
7975static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7976 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7978 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
7980 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
7984 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7986 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
7988 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7990 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
7992 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7994 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
7996 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7998 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
8000 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8002 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
8004 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8006 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
8008 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
8012 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8014 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
8016 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8018 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
8020 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8022 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
8024 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8026 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
8028 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8030 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
8032 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8034 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
8036 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8038 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308040 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8042 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308044};
8045
8046static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
8047 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
8051 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8053 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
8055 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
8059 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
8063 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
8067 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
8071 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8073 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
8075 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
8079 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
8083 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
8087 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8089 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
8091 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8093 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
8095 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8097 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
8099 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8101 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
8103 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8105 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
8107 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8109 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308111 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8113 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308115};
8116
8117static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
8118 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8120 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
8122 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8124 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
8126 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8128 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
8130 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8132 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
8134 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8136 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
8138 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8140 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
8142 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8144 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
8146 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8148 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
8150 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8152 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
8154 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
8158 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8160 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
8162 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8164 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
8166 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8168 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
8170 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8172 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
8174 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8176 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
8178 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308182 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8184 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308186};
8187
8188static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
8189 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
8193 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8195 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
8197 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8199 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
8201 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8203 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
8205 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8207 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
8209 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8211 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
8213 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8215 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
8217 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8219 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
8221 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8223 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
8225 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8227 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
8229 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8231 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
8233 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8235 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
8237 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8239 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
8241 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8243 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
8245 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8247 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
8249 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8251 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308253 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8255 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308257};
8258
8259static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8260 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8262 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
8264 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8266 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
8268 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8270 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
8272 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8274 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
8276 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8278 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
8280 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8282 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
8284 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8286 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
8288 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8290 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
8292 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8294 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
8296 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8298 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
8300 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8302 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
8304 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8306 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
8308 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8310 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
8312 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8314 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
8316 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8318 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
8320 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8322 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308324 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8326 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308328};
8329
8330static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8331 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8333 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
8335 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8337 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
8339 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8341 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
8343 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8345 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
8347 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
8351 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8353 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
8355 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8357 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
8359 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
8363 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
8367 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8369 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
8371 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8373 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
8375 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8377 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
8379 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8381 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
8383 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8385 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
8387 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8389 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
8391 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8393 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308395 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8397 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308399};
8400
8401static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8402 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8404 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
8406 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8408 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
8410 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8412 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
8414 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
8418 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8420 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
8422 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8424 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
8426 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8428 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
8430 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8432 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
8434 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8436 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
8438 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8440 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
8442 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8444 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
8446 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8448 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
8450 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8452 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
8454 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8456 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
8458 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8460 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
8462 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8464 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308466 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8468 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308470};
8471
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308472static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308537 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8539 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308541};
8542
Surendar Karka3ef3d812018-09-28 18:52:35 +05308543static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8544 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8546 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
8548 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8550 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
8552 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8554 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
8556 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8558 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
8560 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8562 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
8564 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8566 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
8568 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8570 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
8572 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8574 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
8576 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8578 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
8580 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8582 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
8584 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8586 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
8588 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8590 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
8592 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8594 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
8596 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8598 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
8600 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8602 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
8604 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8606 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
8608 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8610 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
8612};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008614 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008622 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008626 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008630 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008634 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308636 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008638 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8639 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008642 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008646 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8647 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308648 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008650 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8651 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308652 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008654 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8655 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308656 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008658 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8659 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308660 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008662 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8663 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308664 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008666 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8667 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308668 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008670 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8671 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008674 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308676 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308678 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8679 MSM_BACKEND_DAI_USB_RX,
8680 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8681 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308682};
8683
8684static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008685 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008689 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008693 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008697 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308699 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008701 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008705 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308707 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008709 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8710 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008713 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308715 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008717 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308719 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008721 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008725 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308727 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008729 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8730 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308731 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008733 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8734 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308735 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008737 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8738 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308739 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008741 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008745 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008753 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008757 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308759 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308761 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8763 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008765 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308767 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008769 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8770 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308771 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8772 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308773 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8775 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308777};
8778
8779static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008780 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8781 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008784 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8785 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308786 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008788 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8789 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008792 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8793 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308794 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008796 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8797 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308798 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008800 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8801 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308802 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008804 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8805 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308806 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008808 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8809 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308810 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008812 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8813 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008816 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008820 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008824 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008828 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008832 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008836 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308838 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308844 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8846 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308848};
8849
8850static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008851 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8852 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308853 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008855 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8856 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308857 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008859 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8860 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308861 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008863 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8864 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308865 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008867 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8868 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308869 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008871 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8872 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308873 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008875 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8876 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308877 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008879 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8880 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308881 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008891 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308893 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008895 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8896 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308897 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008907 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308909 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008911 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308913 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308927 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_INT_FM_RX,
8929 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308939 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_INT_FM_RX,
8941 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308943};
8944
8945static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008946 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008950 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8951 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308952 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008954 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8955 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308956 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008958 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008966 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308968 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008970 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8971 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308972 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008986 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308988 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309022 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_AFE_PCM_RX,
9024 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009030 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309032 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309034 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_AFE_PCM_RX,
9036 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309038};
9039
9040static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009041 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009045 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009053 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009057 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009061 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009117 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_AUXPCM_RX,
9119 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309121 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_AUXPCM_RX,
9123 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309133 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_AUXPCM_RX,
9135 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309137};
9138
9139static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009168 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009172 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009212 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009216 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9218 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309220 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9222 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009224 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009228 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309232 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9234 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309236};
9237
9238static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009299 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309303 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9305 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309307};
9308
9309static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309374 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9376 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309378};
9379
Rohit Kumara5077932017-09-10 22:05:05 +05309380static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009425 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309427 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009429 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309431 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009437 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309439 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009441 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309443 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309445 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9447 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309449};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009450
9451static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9452 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9454 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
9456 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
9460 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9462 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
9464 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9466 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
9468 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9470 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
9472 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9474 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
9476 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9478 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
9480 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9482 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
9484 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9486 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
9488 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9490 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
9492 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9494 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
9496 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9498 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
9500 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9502 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
9504 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9506 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
9508 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9510 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
9512 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9514 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
9516 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9518 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
9520};
9521
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309522static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009555 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309557 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009587 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9589 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009591 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9593 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309595 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9597 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599};
9600
9601static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009614 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9615 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309616 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009618 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309620 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009622 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9623 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309624 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009626 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309628 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009630 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9631 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309632 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009634 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9635 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309636 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009638 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9639 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309640 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009642 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9643 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309644 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009646 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9647 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309648 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009650 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9651 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309652 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009654 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9655 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309656 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009658 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9659 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309660 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009662 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9663 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309664 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9665 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009666 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9668 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009670 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9672 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309674 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9676 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309678};
9679
9680static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009713 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009717 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309719 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009721 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309723 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009725 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009729 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009733 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009737 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009741 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009745 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9747 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009749 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9751 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309753 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9755 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309757};
9758
9759static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009792 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009824 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9826 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009828 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9830 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309832 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9834 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309836};
9837
9838static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009839 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309841 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009843 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309845 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009847 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309849 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009851 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309853 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009855 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009859 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009863 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009867 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309869 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009871 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309873 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009887 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309889 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009891 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309893 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009895 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309897 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009899 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309901 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309903 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_PRI_TDM_TX_0,
9905 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9906 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309907};
9908
9909static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009910 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309912 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009914 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309916 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009918 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309920 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009922 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309924 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009926 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309928 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009930 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009934 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309936 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009938 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309940 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009942 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309944 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009946 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309948 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009950 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309952 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009954 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309956 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009962 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309964 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009966 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009970 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309972 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009974 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9975 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9976 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9977 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009978 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9979 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9980 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9981 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309982 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9983 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9984 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9985 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309986};
9987
9988static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010025 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010027 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010029 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010031 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010033 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010037 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010039 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010041 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010043 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010045 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010047 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010049 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010051 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010053 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10055 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010057 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10059 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010061 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10063 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010065};
10066
10067static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010068 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010070 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010072 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010076 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010084 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010088 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010092 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010094 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010096 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010098 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010100 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010102 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010104 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010106 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010108 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010110 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010112 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010114 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010116 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010118 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010120 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010122 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010124 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010126 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010128 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010130 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010132 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10134 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010136 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10138 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010140 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10142 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10143 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010144};
10145
10146static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010171 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010175 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010177 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010179 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010183 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010185 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010187 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010189 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010191 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010193 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010195 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010197 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010199 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010201 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010203 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010205 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010207 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010209 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010211 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10213 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010215 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10217 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010219 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10221 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010223};
10224
10225static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010226 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010228 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010230 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010234 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010236 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010238 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010240 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010242 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010244 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010246 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010248 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010250 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010252 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010254 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010256 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010258 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010260 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010262 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010264 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010266 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010270 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010272 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010274 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010276 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010278 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010280 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010282 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010284 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010286 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010288 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010290 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_SEC_TDM_TX_0,
10292 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010294};
10295
10296static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010297 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010299 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010301 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010303 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010305 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010307 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010309 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010311 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010313 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010315 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010317 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010319 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010321 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010323 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010325 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010327 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010329 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010331 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010333 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010335 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010337 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010339 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010341 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010343 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010345 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10346 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010347 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010349 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10350 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010351 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010353 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10354 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010355 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010357 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010359 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010361 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10363 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010365 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10367 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010369 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10371 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010373};
10374
10375static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010376 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10377 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010380 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10381 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010384 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010386 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010388 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010390 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010392 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010394 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010396 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010400 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010402 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010404 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10405 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010406 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010408 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10409 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010410 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010412 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10413 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010414 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010416 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10417 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010418 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010420 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10421 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010422 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010424 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010426 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010428 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010430 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010432 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010434 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010436 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010438 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10439 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010440 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_TERT_TDM_TX_0,
10442 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10443 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010444};
10445
10446static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010447 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010451 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010453 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010455 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010457 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010459 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010461 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010471 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010473 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010475 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010483 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10484 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010485 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010487 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10488 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010491 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010495 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10496 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010497 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010499 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10500 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010501 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010503 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10504 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010505 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010507 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10508 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010509 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10510 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010511 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10512 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10513 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10514 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010515 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10516 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10517 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10518 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010519 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10520 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10521 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10522 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010523};
10524
10525static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010526 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010528 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010530 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010532 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010534 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010536 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010538 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010540 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010542 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010544 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010546 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10547 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010548 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010550 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10551 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010552 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010554 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10555 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010556 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010558 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10559 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010560 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010562 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10563 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010564 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010566 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10567 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010568 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010570 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10571 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010572 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010574 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10575 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010576 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010578 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10579 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010580 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010582 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10583 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010584 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010586 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10587 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010588 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10589 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010590 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10592 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10593 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010594 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10596 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10597 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010598 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10599 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10600 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10601 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010602};
10603
10604static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010607 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010609 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010611 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010613 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010615 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010621 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010623 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010625 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010627 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010629 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010631 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010633 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010635 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010637 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010639 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010641 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010643 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010645 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010647 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010649 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010651 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010653 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010655 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010657 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010659 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010661 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010663 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010665 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010667 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010669 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10671 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010673 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10675 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010677 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10679 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681};
10682
10683static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010684 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010686 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010688 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10689 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010690 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010692 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010694 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010696 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010698 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010700 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010702 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010708 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010710 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010712 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010714 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010716 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010718 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010720 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010722 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010724 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010726 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010728 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010732 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010736 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010738 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010740 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010742 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010744 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010746 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010748 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10750 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010752 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10754 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010756 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10758 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010760};
10761
10762static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010763 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010765 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010767 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010769 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010771 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010773 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010775 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010777 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010779 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010781 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010783 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010785 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010787 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010789 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010791 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010793 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010795 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010797 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010799 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010801 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010803 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010805 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010807 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010809 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010811 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010813 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010815 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010817 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010819 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010821 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010823 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010825 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010827 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010829 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010831 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10833 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010835 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10837 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10838 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010839 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10841 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10842 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010843};
10844
10845static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010846 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010866 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010868 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010870 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010872 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010874 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010876 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010878 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010880 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010884 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010888 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010890 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010892 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010894 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010896 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010898 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010900 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010902 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010904 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010906 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010908 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010910 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
10912 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010914};
10915
10916static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010917 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10918 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010919 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010921 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10922 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010923 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010925 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10926 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010927 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010929 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010931 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010933 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10934 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010937 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10938 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010939 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010941 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010943 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010945 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10946 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010947 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010949 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010951 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010953 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10954 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010955 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010957 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010959 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010961 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10962 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010963 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010965 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10966 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010967 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010969 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010971 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010973 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010975 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010977 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010979 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010981 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010983 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010985 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10986 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10987 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10988 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010989 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10990 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10991 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10992 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010993 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10994 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10995 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10996 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010997};
10998
10999static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011000 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11001 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011002 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011004 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11005 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011006 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011008 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11009 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011010 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011012 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11013 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011014 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011016 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011018 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011020 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11021 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011022 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011024 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11025 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011026 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011028 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11029 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011030 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011032 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11033 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011034 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011036 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011038 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011040 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11041 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011042 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011044 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11045 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011046 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011048 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11049 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011050 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011052 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11053 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011054 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011056 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011058 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011060 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011062 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011064 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11065 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011066 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11067 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011068 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11069 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
11070 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11071 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011072 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11073 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
11074 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11075 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011076 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11077 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
11078 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11079 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011080};
11081
11082static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011083 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011085 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011111 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011113 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011115 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011117 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011119 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011121 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011123 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011125 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011127 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011129 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011131 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011133 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011137 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011139 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011141 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011143 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011145 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011147 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011149 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011151 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11153 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011155 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11157 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011159 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11161 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11162 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011163};
11164
Rohit Kumara5077932017-09-10 22:05:05 +053011165static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011166 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011168 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011172 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011174 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011176 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011178 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011180 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011182 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011186 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011188 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011192 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011194 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011196 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011198 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011200 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011204 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011206 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011208 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011210 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011212 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011214 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011216 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011218 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011220 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011222 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011224 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011226 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011230 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011232 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11233 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011234 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11236 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011238 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11240 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011242 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11244 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11245 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011246};
11247
11248static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011249 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11250 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011253 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011255 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011257 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011259 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011261 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011263 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011265 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11266 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011267 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011269 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11270 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011271 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011273 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011275 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011277 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011279 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011281 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011283 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011285 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011287 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011289 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011291 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011293 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011295 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011297 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011299 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011301 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011303 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011305 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011307 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011309 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11310 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011311 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011313 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11315 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011317};
11318
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011319static const struct snd_kcontrol_new quin_tdm_tx_1_mixer_controls[] = {
11320 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11322 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11323 msm_routing_put_audio_mixer),
11324 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11325 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11326 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
11328 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11330 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
11332 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11334 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11335 msm_routing_put_audio_mixer),
11336 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11337 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11338 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11339 msm_routing_put_audio_mixer),
11340 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11341 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11342 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11343 msm_routing_put_audio_mixer),
11344 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11345 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11346 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11347 msm_routing_put_audio_mixer),
11348 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11349 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11350 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11351 msm_routing_put_audio_mixer),
11352 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11353 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11354 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11355 msm_routing_put_audio_mixer),
11356 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11358 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11359 msm_routing_put_audio_mixer),
11360 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11361 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11362 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
11364 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11366 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11367 msm_routing_put_audio_mixer),
11368 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11369 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11370 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11371 msm_routing_put_audio_mixer),
11372 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11373 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11374 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11375 msm_routing_put_audio_mixer),
11376 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11378 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
11380 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11382 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384};
11385
Rohit Kumara5077932017-09-10 22:05:05 +053011386static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011387 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011389 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011391 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011393 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011395 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011397 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011399 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011401 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011403 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011405 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011407 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011409 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011411 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011413 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011415 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011417 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011419 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011421 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011423 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011425 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011427 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011429 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011431 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011433 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011435 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011437 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011439 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011441 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011443 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011445 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011447 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011449 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011451 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011453 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011455 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11457 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011459 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11461 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11462 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011463};
11464
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011465static const struct snd_kcontrol_new quin_tdm_tx_2_mixer_controls[] = {
11466 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11468 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
11470 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11472 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11473 msm_routing_put_audio_mixer),
11474 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11476 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
11478 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11480 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11481 msm_routing_put_audio_mixer),
11482 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11484 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
11486 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11488 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
11490 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11492 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
11494 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11496 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
11498 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11500 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
11502 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11504 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
11506 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11508 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
11510 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11512 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
11514 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11516 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
11518 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11520 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
11522 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11524 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
11526 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11528 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11529 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011530 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11531 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11532 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11533 msm_routing_put_audio_mixer),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011534};
11535
Rohit Kumara5077932017-09-10 22:05:05 +053011536static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011539 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011543 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011545 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011547 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011549 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011551 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011553 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011557 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011559 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011561 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011563 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011565 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011567 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011569 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011571 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011573 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011575 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011577 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011579 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011581 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011583 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011585 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011587 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011589 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11590 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011591 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011593 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011595 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011597 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11598 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011599 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011601 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11602 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011603 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011605 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11607 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11608 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011609 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11610 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11611 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11612 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011613 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11614 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11615 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11616 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011617};
11618
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011619static const struct snd_kcontrol_new quin_tdm_tx_3_mixer_controls[] = {
11620 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11622 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
11624 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11626 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
11628 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11630 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11631 msm_routing_put_audio_mixer),
11632 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11634 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11635 msm_routing_put_audio_mixer),
11636 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11637 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11638 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11639 msm_routing_put_audio_mixer),
11640 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11642 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
11644 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11646 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
11648 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11650 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
11652 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11654 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
11656 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11657 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11658 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11659 msm_routing_put_audio_mixer),
11660 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11661 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11662 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11663 msm_routing_put_audio_mixer),
11664 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11665 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11666 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11667 msm_routing_put_audio_mixer),
11668 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11669 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11670 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11671 msm_routing_put_audio_mixer),
11672 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11673 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11674 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11675 msm_routing_put_audio_mixer),
11676 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11677 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11678 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11679 msm_routing_put_audio_mixer),
11680 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11681 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11682 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11683 msm_routing_put_audio_mixer),
11684};
11685
Rohit Kumara5077932017-09-10 22:05:05 +053011686static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011687 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11688 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011689 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011691 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011693 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011695 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11696 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011697 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011699 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11700 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011701 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011703 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11704 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011705 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011707 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11708 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011709 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011711 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011713 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011715 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11716 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011717 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011719 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11720 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011721 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011723 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11724 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011725 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011727 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11728 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011729 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011731 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011733 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011735 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011737 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011739 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11740 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011741 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011743 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011745 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011747 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11748 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011749 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011751 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11752 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011753 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11754 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011755 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11757 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11758 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011759 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11760 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11761 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11762 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011763 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11764 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11765 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11766 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011767};
11768
Karthikeyan Manic3700752019-03-11 18:33:53 -070011769static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11770 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11772 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
11774 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11776 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11777 msm_routing_put_audio_mixer),
11778 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11780 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11781 msm_routing_put_audio_mixer),
11782 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11783 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11784 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11785 msm_routing_put_audio_mixer),
11786 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11788 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11789 msm_routing_put_audio_mixer),
11790 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11792 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
11794 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11796 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
11798 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11800 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
11802 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11804 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11805 msm_routing_put_audio_mixer),
11806 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11808 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11809 msm_routing_put_audio_mixer),
11810 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11811 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11812 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11813 msm_routing_put_audio_mixer),
11814 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11815 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11816 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11817 msm_routing_put_audio_mixer),
11818 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11820 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11821 msm_routing_put_audio_mixer),
11822 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11823 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11824 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11825 msm_routing_put_audio_mixer),
11826 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11827 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11828 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11829 msm_routing_put_audio_mixer),
11830 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11831 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11832 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11833 msm_routing_put_audio_mixer),
11834 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11836 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11837 msm_routing_put_audio_mixer),
11838 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11840 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11841 msm_routing_put_audio_mixer),
11842};
11843
11844static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11845 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11847 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
11849 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11851 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
11853 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11855 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
11857 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11859 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
11861 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11863 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
11865 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11867 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11868 msm_routing_put_audio_mixer),
11869 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11871 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11872 msm_routing_put_audio_mixer),
11873 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11875 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11879 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
11881 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11883 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
11885 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11887 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
11889 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11890 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11891 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11892 msm_routing_put_audio_mixer),
11893 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11894 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11895 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11896 msm_routing_put_audio_mixer),
11897 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11899 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11900 msm_routing_put_audio_mixer),
11901 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11902 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11903 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11904 msm_routing_put_audio_mixer),
11905 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11906 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11907 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11908 msm_routing_put_audio_mixer),
11909};
11910
11911static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11912 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11914 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
11916 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11918 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
11920 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11922 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
11924 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11926 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
11928 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11930 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
11932 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11934 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11938 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11942 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11946 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11950 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
11952 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11954 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11958 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
11960 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11962 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
11964 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11966 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
11968 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11970 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
11972 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11974 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
11976 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11978 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
11980 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11982 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
11984};
11985
11986static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11987 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11989 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11990 msm_routing_put_audio_mixer),
11991 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11993 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
11995 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11997 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
11999 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12001 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
12003 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12005 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
12007 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12009 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
12011 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12013 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
12015 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12017 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
12019 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12021 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
12023 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12025 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12026 msm_routing_put_audio_mixer),
12027 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12029 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
12030 msm_routing_put_audio_mixer),
12031 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
12032 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12033 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
12034 msm_routing_put_audio_mixer),
12035 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12037 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
12038 msm_routing_put_audio_mixer),
12039 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
12040 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12041 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
12042 msm_routing_put_audio_mixer),
12043 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
12044 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12045 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
12046 msm_routing_put_audio_mixer),
12047 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12049 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12050 msm_routing_put_audio_mixer),
12051 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
12052 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12053 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12054 msm_routing_put_audio_mixer),
12055 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
12056 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12057 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12058 msm_routing_put_audio_mixer),
12059};
12060
12061static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
12062 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
12063 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12064 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12065 msm_routing_put_audio_mixer),
12066 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12068 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12069 msm_routing_put_audio_mixer),
12070 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12072 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12073 msm_routing_put_audio_mixer),
12074 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12076 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
12078 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12080 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12081 msm_routing_put_audio_mixer),
12082 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12084 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12085 msm_routing_put_audio_mixer),
12086 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
12087 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12088 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
12089 msm_routing_put_audio_mixer),
12090 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
12091 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12092 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12093 msm_routing_put_audio_mixer),
12094 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
12095 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12096 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12097 msm_routing_put_audio_mixer),
12098 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12100 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
12102 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12104 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
12106 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12108 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
12109 msm_routing_put_audio_mixer),
12110 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12112 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
12113 msm_routing_put_audio_mixer),
12114 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12116 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
12117 msm_routing_put_audio_mixer),
12118 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12120 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
12121 msm_routing_put_audio_mixer),
12122 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12125 msm_routing_put_audio_mixer),
12126 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12128 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12129 msm_routing_put_audio_mixer),
12130 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12132 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12133 msm_routing_put_audio_mixer),
12134};
12135
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012136static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012141 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12142 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012145 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012149 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12150 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012153 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012155 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012157 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012159 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012161 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12162 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012163 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012165 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012167 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012169 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12170 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12172 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012173 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12174 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12175 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012177 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12178 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012179 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012181 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12182 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012185 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012189 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12190 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012193 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12194 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12196 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012197 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
12198 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012201 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12202 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012205 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12206 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012207 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012209 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12210 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012211 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012213 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12214 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012217 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12218 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012219 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012221 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
12222 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012223 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012225 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012227 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012229 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12232 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012233 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12235 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012237 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012241 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012243 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012245 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012249 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12250 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012253 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12254 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012255 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012257 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12258 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012261 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12262 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012263 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012265 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12266 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012267 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012269 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12270 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012271 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012273 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12274 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012277 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12278 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012281 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12282 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012283 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012285 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12286 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012287 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012289 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12290 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012291 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012293 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12294 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012295 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012297 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12298 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012299 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012301 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012303 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012305 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012307 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012309 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012311 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012313 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012315 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12316 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012317 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12319 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12320 msm_routing_put_audio_mixer),
12321 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12323 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12324 msm_routing_put_audio_mixer),
12325 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12326 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12327 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12328 msm_routing_put_audio_mixer),
12329 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12331 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012333 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012335 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012337 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12338 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012339 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012341 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12342 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012343 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12344 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012345 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12346 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12347 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12348 msm_routing_put_audio_mixer),
12349 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12350 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12352 msm_routing_put_audio_mixer),
12353 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12355 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12356 msm_routing_put_audio_mixer),
12357 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12358 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12359 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12360 msm_routing_put_audio_mixer),
12361 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12363 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12364 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012365 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12367 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12368 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012369 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12372 msm_routing_put_audio_mixer),
12373 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12375 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12376 msm_routing_put_audio_mixer),
12377 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12379 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12380 msm_routing_put_audio_mixer),
12381 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12383 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12384 msm_routing_put_audio_mixer),
12385 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12388 msm_routing_put_audio_mixer),
12389 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12391 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12392 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012393 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12395 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12396 msm_routing_put_audio_mixer),
12397 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12399 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12400 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012401 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12403 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12404 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012405 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12407 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12408 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012409};
12410
12411static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012412 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12413 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012414 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012416 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012420 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12421 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012422 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012424 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012428 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12429 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012430 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012432 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012434 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012436 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012438 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012440 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12441 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012442 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012444 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12445 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012448 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12449 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012452 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12453 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012454 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012456 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12459 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012460 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12461 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12462 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012464 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12465 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012466 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012468 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12469 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012470 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012472 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12473 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012474 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012476 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012478 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012480 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012482 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012484 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012486 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012488 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12489 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012490 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012492 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12493 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012494 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012496 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12497 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012498 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012500 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12501 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012502 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012504 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012506 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012508 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012510 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012512 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012514 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012516 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12517 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012518 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012520 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012522 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012524 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012526 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012528 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12529 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012530 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012532 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012534 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012536 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12537 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012538 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012540 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012542 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12543 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012544 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12546 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12547 msm_routing_put_audio_mixer),
12548 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12550 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12551 msm_routing_put_audio_mixer),
12552 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12555 msm_routing_put_audio_mixer),
12556 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12557 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12558 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012560 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012562 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12567 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012568 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12570 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12571 msm_routing_put_audio_mixer),
12572 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12574 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12575 msm_routing_put_audio_mixer),
12576 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12578 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12579 msm_routing_put_audio_mixer),
12580 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12582 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12583 msm_routing_put_audio_mixer),
12584 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12586 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12587 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012588 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12589 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12591 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012592 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12594 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12595 msm_routing_put_audio_mixer),
12596 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12597 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12598 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12599 msm_routing_put_audio_mixer),
12600 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12601 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12603 msm_routing_put_audio_mixer),
12604 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12606 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12607 msm_routing_put_audio_mixer),
12608 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12610 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12611 msm_routing_put_audio_mixer),
12612 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12615 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012616 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12618 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12619 msm_routing_put_audio_mixer),
12620 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12622 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12623 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012624 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12626 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12627 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012628 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12630 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12631 msm_routing_put_audio_mixer),
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053012632 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12633 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12634 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12635 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012636};
12637
12638static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012639 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12642 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012643 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12644 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12645 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012647 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12648 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012649 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012651 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12652 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012653 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012655 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12656 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012657 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012659 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12660 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012663 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12664 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012665 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012667 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12668 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012671 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12672 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012675 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12676 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012679 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12680 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012681 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12682 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012683 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12685 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012687 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012689 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012691 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012693 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012695 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012697 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012699 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12700 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012701 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012703 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12704 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012705 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012707 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012709 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012711 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12712 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012713 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012715 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012717 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012719 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12720 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012721 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012723 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12724 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012725 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012727 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12728 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012729 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012731 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012733 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012735 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012737 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012739 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12740 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012741 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012743 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12744 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012745 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012747 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12748 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012749 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012751 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12752 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012753 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012755 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12756 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012757 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012759 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12760 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012761 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012763 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012765 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012767 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12768 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012769 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012771 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012773 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012775 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012777 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012779 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12780 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12782 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012783 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12785 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12786 msm_routing_put_audio_mixer),
12787 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12788 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12789 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12790 msm_routing_put_audio_mixer),
12791 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12792 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12793 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12794 msm_routing_put_audio_mixer),
12795 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12797 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12798 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012799 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12800 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12801 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12802 msm_routing_put_audio_mixer),
12803 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12805 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12806 msm_routing_put_audio_mixer),
12807 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12810 msm_routing_put_audio_mixer),
12811 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12814 msm_routing_put_audio_mixer),
12815 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12816 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12817 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12818 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012819 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12821 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12822 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012823 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12825 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12826 msm_routing_put_audio_mixer),
12827 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12828 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12829 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12830 msm_routing_put_audio_mixer),
12831 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12832 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12833 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12834 msm_routing_put_audio_mixer),
12835 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12836 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12838 msm_routing_put_audio_mixer),
12839 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12840 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12841 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12842 msm_routing_put_audio_mixer),
12843 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12845 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12846 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012847 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12849 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12850 msm_routing_put_audio_mixer),
12851 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12853 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12854 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012855 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12856 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12857 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12858 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012859};
12860
12861static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012862 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12863 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012864 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12865 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012866 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12867 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12868 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012870 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12871 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012872 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012874 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12875 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012876 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012878 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12879 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012880 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012882 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12883 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012886 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012888 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012890 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12891 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012892 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012894 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12895 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012896 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012898 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012900 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012902 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12903 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012904 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012906 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012908 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012910 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012914 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012916 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012918 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12919 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012920 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012922 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012924 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012926 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012928 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012930 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12931 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012932 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012934 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12935 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012936 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012938 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12939 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012940 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012942 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12943 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012944 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012946 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12947 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012948 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012950 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12951 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012952 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012954 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12955 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012956 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012958 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12959 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012960 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012962 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12963 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012964 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012966 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012968 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012970 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12971 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012972 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12973 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012974 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12976 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12977 msm_routing_put_audio_mixer),
12978 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12979 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12980 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12981 msm_routing_put_audio_mixer),
12982 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12983 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12984 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12985 msm_routing_put_audio_mixer),
12986 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12988 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012990 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12991 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012992 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012994 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12995 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012996 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012998 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12999 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013000 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013002 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13003 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013006 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013008 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013010 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13013 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013014 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13016 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13017 msm_routing_put_audio_mixer),
13018 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13019 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13020 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13021 msm_routing_put_audio_mixer),
13022 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13023 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13024 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13025 msm_routing_put_audio_mixer),
13026 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13027 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13028 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13029 msm_routing_put_audio_mixer),
13030 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13031 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13033 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013034 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13036 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13037 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013038 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13039 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13040 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13041 msm_routing_put_audio_mixer),
13042 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13043 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13044 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13045 msm_routing_put_audio_mixer),
13046 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13047 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13048 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13049 msm_routing_put_audio_mixer),
13050 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13051 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13052 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13053 msm_routing_put_audio_mixer),
13054 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13056 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13057 msm_routing_put_audio_mixer),
13058 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13059 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13060 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13061 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013062 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13063 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13064 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13065 msm_routing_put_audio_mixer),
13066 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13068 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13069 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013070 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13071 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13072 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13073 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013074};
13075
13076static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013077 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013079 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13080 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013081 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13082 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13083 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013085 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013087 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013089 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013091 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013093 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13094 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013095 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013097 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13098 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013099 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013101 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13102 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013103 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013105 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13106 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013107 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013109 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
13110 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013111 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013113 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13114 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013115 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013117 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
13118 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13120 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013121 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
13122 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
13123 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013125 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13126 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013127 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13130 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013131 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013133 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13134 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013135 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013137 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13138 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013139 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13142 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013145 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13146 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013147 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013149 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13150 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013153 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013155 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013157 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013161 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13162 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013163 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013165 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013167 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013169 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013171 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013173 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013175 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013177 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013179 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013181 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013183 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013185 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013189 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013191 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013193 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013195 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013197 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013199 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013201 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13202 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013203 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013205 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013207 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013211 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013215 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013219 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13220 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013221 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13223 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13224 msm_routing_put_audio_mixer),
13225 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13227 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13228 msm_routing_put_audio_mixer),
13229 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13232 msm_routing_put_audio_mixer),
13233 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13235 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013239 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013241 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013243 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013245 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013247 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013249 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013251 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013253 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013255 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13256 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013257 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13259 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13260 msm_routing_put_audio_mixer),
13261 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13263 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13264 msm_routing_put_audio_mixer),
13265 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13267 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13268 msm_routing_put_audio_mixer),
13269 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13271 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13272 msm_routing_put_audio_mixer),
13273 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13276 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013277 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13278 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13279 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13280 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013281 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13282 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13283 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13284 msm_routing_put_audio_mixer),
13285 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13287 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13288 msm_routing_put_audio_mixer),
13289 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13290 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13291 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13292 msm_routing_put_audio_mixer),
13293 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13295 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13296 msm_routing_put_audio_mixer),
13297 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13299 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13300 msm_routing_put_audio_mixer),
13301 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13303 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13304 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013305 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13307 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13308 msm_routing_put_audio_mixer),
13309 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13311 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13312 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013313 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13315 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13316 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013317 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13318 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13319 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13320 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013321};
13322
13323static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013324 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013326 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013328 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013330 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13331 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013332 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13333 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13334 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013336 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013338 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013340 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13341 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013342 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013344 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13345 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013346 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013348 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013352 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13353 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013354 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013356 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13357 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013358 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013360 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13361 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013362 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13363 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013364 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13366 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013368 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013370 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013372 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13373 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013374 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013376 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13377 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013378 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013380 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13381 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013382 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013384 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13385 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013386 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013388 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013390 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013392 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13393 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013394 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013396 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13397 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013400 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13401 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013402 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013404 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13405 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013406 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013408 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013410 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013412 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013414 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013418 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013420 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013422 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013424 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13425 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013426 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013430 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013432 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013434 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013438 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013440 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13441 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013442 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013444 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013446 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013448 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013450 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013452 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013454 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013456 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013458 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013460 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13463 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013464 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13467 msm_routing_put_audio_mixer),
13468 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13470 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13471 msm_routing_put_audio_mixer),
13472 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13474 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13475 msm_routing_put_audio_mixer),
13476 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13478 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013480 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013482 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13483 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013484 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13486 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13487 msm_routing_put_audio_mixer),
13488 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13489 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13490 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13491 msm_routing_put_audio_mixer),
13492 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13493 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13494 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13495 msm_routing_put_audio_mixer),
13496 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13497 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13498 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13499 msm_routing_put_audio_mixer),
13500 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13502 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13503 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013504 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13506 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13507 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013508 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13509 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13510 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13511 msm_routing_put_audio_mixer),
13512 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13513 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13514 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13515 msm_routing_put_audio_mixer),
13516 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13517 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13518 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13519 msm_routing_put_audio_mixer),
13520 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13521 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13522 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13523 msm_routing_put_audio_mixer),
13524 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13525 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13526 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13527 msm_routing_put_audio_mixer),
13528 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13529 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13530 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13531 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013532 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13533 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13534 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13535 msm_routing_put_audio_mixer),
13536 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13537 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13539 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013540 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13541 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13542 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13543 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013544};
13545
13546static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013547 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013549 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13550 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013551 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13553 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013555 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013557 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013559 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013561 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013563 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013565 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013567 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013569 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013571 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013573 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013575 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013577 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013579 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13580 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013581 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013583 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13584 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013585 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013587 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13588 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013591 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13592 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013593 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013595 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13596 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013597 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013599 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013601 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013603 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13604 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013605 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013607 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13608 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013611 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013613 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013615 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13616 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013617 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013619 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013621 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013623 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13624 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013625 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013627 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13628 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013629 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013631 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013635 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13636 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013637 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013639 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013641 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013643 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13644 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013645 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013647 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13648 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013649 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013651 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013653 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013655 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13656 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013657 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013659 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13660 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013661 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013669 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013671 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013673 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013677 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13682 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013683 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13685 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13686 msm_routing_put_audio_mixer),
13687 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13689 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13690 msm_routing_put_audio_mixer),
13691 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13693 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13694 msm_routing_put_audio_mixer),
13695 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13696 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13697 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013699 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13700 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013701 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013703 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13706 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013707 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13709 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13710 msm_routing_put_audio_mixer),
13711 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13713 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13714 msm_routing_put_audio_mixer),
13715 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13717 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13718 msm_routing_put_audio_mixer),
13719 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13721 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13722 msm_routing_put_audio_mixer),
13723 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13725 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13726 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013727 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13729 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13730 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013731 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13733 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13734 msm_routing_put_audio_mixer),
13735 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13737 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13738 msm_routing_put_audio_mixer),
13739 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13741 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13742 msm_routing_put_audio_mixer),
13743 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13745 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13746 msm_routing_put_audio_mixer),
13747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13749 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13750 msm_routing_put_audio_mixer),
13751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13753 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13754 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013755 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13757 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13758 msm_routing_put_audio_mixer),
13759 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13761 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13762 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013763 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13765 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13766 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013767 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13769 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13770 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013771};
13772
Asish Bhattacharya34504582017-08-08 12:55:01 +053013773static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013774 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013776 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13777 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013778 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13780 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013782 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013784 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013786 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013788 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013790 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013794 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013796 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013798 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013802 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013806 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013808 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013810 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013812 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013814 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013816 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013818 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013820 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013824 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013828 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013832 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013836 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013838 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013840 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013844 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013848 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013850 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013852 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013854 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013856 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013858 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013860 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013862 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013864 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013866 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013868 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013870 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013872 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013874 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013876 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013878 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13879 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013880 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013882 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013884 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013886 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013888 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013890 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13891 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013892 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013894 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013896 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013898 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013900 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013902 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013904 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013906 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13907 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013908 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013910 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13911 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013912 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013914 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13915 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013916 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13917 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013918 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13919 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13920 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13921 msm_routing_put_audio_mixer),
13922 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13923 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13924 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13925 msm_routing_put_audio_mixer),
13926 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13927 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13928 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13929 msm_routing_put_audio_mixer),
13930 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13931 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13933 msm_routing_put_audio_mixer),
13934 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13936 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13937 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013938 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13939 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13940 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13941 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013942 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13943 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13944 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13945 msm_routing_get_audio_mixer,
13946 msm_routing_put_audio_mixer),
13947 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13949 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13950 msm_routing_get_audio_mixer,
13951 msm_routing_put_audio_mixer),
13952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13954 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13955 msm_routing_get_audio_mixer,
13956 msm_routing_put_audio_mixer),
13957 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13958 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13959 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13960 msm_routing_get_audio_mixer,
13961 msm_routing_put_audio_mixer),
13962 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13964 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13965 msm_routing_get_audio_mixer,
13966 msm_routing_put_audio_mixer),
13967 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13969 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13970 msm_routing_get_audio_mixer,
13971 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013972 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13974 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13975 msm_routing_put_audio_mixer),
13976 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13978 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13979 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013980 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13982 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13983 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013984 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13985 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13986 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13987 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013988};
13989
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013990static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013991 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013993 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13994 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013995 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13996 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13997 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013999 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14000 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014001 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014003 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14004 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014005 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014007 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14008 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014009 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014011 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14012 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014013 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014015 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14016 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014017 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014019 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14020 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014021 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014023 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14024 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014025 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014027 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014029 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014031 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14032 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014033 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014035 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014039 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014041 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014049 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014051 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014053 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014055 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014057 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014059 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014061 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014063 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014065 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014067 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014069 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014071 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14072 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014073 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14074 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014075 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14077 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14078 msm_routing_put_audio_mixer),
14079 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14082 msm_routing_put_audio_mixer),
14083 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14085 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14086 msm_routing_put_audio_mixer),
14087 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14089 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14090 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014091 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14092 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14093 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14094 msm_routing_put_audio_mixer),
14095 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14097 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14098 msm_routing_put_audio_mixer),
14099 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14100 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14101 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14102 msm_routing_put_audio_mixer),
14103 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14104 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14105 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14106 msm_routing_put_audio_mixer),
14107 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14109 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14110 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014111 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14113 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14114 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014115 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14117 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14118 msm_routing_put_audio_mixer),
14119 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14121 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14122 msm_routing_put_audio_mixer),
14123 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14125 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14126 msm_routing_put_audio_mixer),
14127 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14129 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14130 msm_routing_put_audio_mixer),
14131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14133 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14134 msm_routing_put_audio_mixer),
14135 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14137 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14138 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014139 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14140 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14141 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14142 msm_routing_put_audio_mixer),
14143 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14145 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14146 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014147 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14148 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14149 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14150 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014151};
14152
Laxminath Kasam38070be2017-08-17 18:21:59 +053014153static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014154 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14155 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14157 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014158 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14160 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014162 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014164 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014166 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14167 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014168 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014170 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14171 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014172 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014174 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14175 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014176 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014178 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14179 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014180 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014182 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14183 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014184 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014186 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014188 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014190 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14191 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070014192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014194 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14195 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014196 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014198 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14199 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014202 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14203 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014204 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014206 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014208 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014210 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014212 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014214 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014216 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014220 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014222 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014224 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014228 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014232 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014236 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014240 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014242 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014244 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014248 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014250 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14251 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014252 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014254 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014256 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014260 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14261 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014262 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14264 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14265 msm_routing_put_audio_mixer),
14266 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14268 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14269 msm_routing_put_audio_mixer),
14270 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14271 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14272 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14273 msm_routing_put_audio_mixer),
14274 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14276 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14277 msm_routing_put_audio_mixer),
14278 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14280 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14281 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014282 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14283 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14284 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14285 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014286 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14287 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14288 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14289 msm_routing_get_audio_mixer,
14290 msm_routing_put_audio_mixer),
14291 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14293 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14294 msm_routing_get_audio_mixer,
14295 msm_routing_put_audio_mixer),
14296 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14297 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14298 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14299 msm_routing_get_audio_mixer,
14300 msm_routing_put_audio_mixer),
14301 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14302 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14303 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14304 msm_routing_get_audio_mixer,
14305 msm_routing_put_audio_mixer),
14306 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14307 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14308 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14309 msm_routing_get_audio_mixer,
14310 msm_routing_put_audio_mixer),
14311 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14312 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14314 msm_routing_get_audio_mixer,
14315 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014316 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14318 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14319 msm_routing_put_audio_mixer),
14320 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14321 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14322 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14323 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014324 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14326 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14327 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014328 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14329 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14330 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14331 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053014332};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014333static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014334 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14335 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014336 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14337 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014338 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14339 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14340 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014342 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14343 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014344 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014346 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14347 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014348 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014350 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14351 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014352 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014354 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14355 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014356 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014358 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14359 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014360 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014362 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14363 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014364 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014366 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14367 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014368 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14369 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014370 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14371 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14372 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14373 msm_routing_put_audio_mixer),
14374 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14376 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14377 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014378 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14380 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14381 msm_routing_put_audio_mixer),
14382 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14384 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14385 msm_routing_put_audio_mixer),
14386 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14387 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14388 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14389 msm_routing_put_audio_mixer),
14390 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14392 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14393 msm_routing_put_audio_mixer),
14394 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14396 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14397 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014398 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14400 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14401 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014402 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14404 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14405 msm_routing_get_audio_mixer,
14406 msm_routing_put_audio_mixer),
14407 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14409 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14410 msm_routing_get_audio_mixer,
14411 msm_routing_put_audio_mixer),
14412 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14413 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14414 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14415 msm_routing_get_audio_mixer,
14416 msm_routing_put_audio_mixer),
14417 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14418 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14419 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14420 msm_routing_get_audio_mixer,
14421 msm_routing_put_audio_mixer),
14422 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14424 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14425 msm_routing_get_audio_mixer,
14426 msm_routing_put_audio_mixer),
14427 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14428 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14429 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14430 msm_routing_get_audio_mixer,
14431 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014432 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14433 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14434 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14435 msm_routing_put_audio_mixer),
14436 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14437 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14438 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14439 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014440 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14442 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14443 msm_routing_put_audio_mixer),
Harshal Ahire1cbefc92019-11-20 14:54:42 +053014444 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14445 MSM_BACKEND_DAI_SLIMBUS_7_TX,
14446 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14447 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014448};
14449
14450static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014451 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14452 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014453 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14454 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014455 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14457 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014459 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014461 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014463 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14464 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014465 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14466 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014467 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14469 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14470 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014471 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14472 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14473 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014475 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014477 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014479 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014481 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014483 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014485 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014487 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014489 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014491 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014493 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014495 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014497 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14498 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014499 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14501 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14502 msm_routing_put_audio_mixer),
14503 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14505 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14506 msm_routing_put_audio_mixer),
14507 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14509 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14510 msm_routing_put_audio_mixer),
14511 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14513 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14514 msm_routing_put_audio_mixer),
14515 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14517 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14518 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014519 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14520 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14521 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14522 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014523 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14524 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14525 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14526 msm_routing_get_audio_mixer,
14527 msm_routing_put_audio_mixer),
14528 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14529 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14530 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14531 msm_routing_get_audio_mixer,
14532 msm_routing_put_audio_mixer),
14533 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14534 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14535 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14536 msm_routing_get_audio_mixer,
14537 msm_routing_put_audio_mixer),
14538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14540 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14541 msm_routing_get_audio_mixer,
14542 msm_routing_put_audio_mixer),
14543 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14544 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14545 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14546 msm_routing_get_audio_mixer,
14547 msm_routing_put_audio_mixer),
14548 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14550 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14551 msm_routing_get_audio_mixer,
14552 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014553 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14554 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14555 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14556 msm_routing_put_audio_mixer),
14557 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14558 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14559 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14560 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014561 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14562 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14563 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14564 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014565};
14566
14567static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014568 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014570 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14571 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014572 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14574 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014576 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014578 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014582 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014584 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014586 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014588 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014590 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014592 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014594 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014596 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14597 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014598 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014600 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014602 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14603 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014604 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14605 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14606 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14607 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014608 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14610 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14611 msm_routing_put_audio_mixer),
14612 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14613 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14614 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14615 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014616 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14618 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14619 msm_routing_put_audio_mixer),
14620 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14622 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14623 msm_routing_put_audio_mixer),
14624 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14625 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14626 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14627 msm_routing_put_audio_mixer),
14628 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14630 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14631 msm_routing_put_audio_mixer),
14632 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14633 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14634 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14635 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14638 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14639 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014640 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14641 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14642 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14643 msm_routing_get_audio_mixer,
14644 msm_routing_put_audio_mixer),
14645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14647 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14648 msm_routing_get_audio_mixer,
14649 msm_routing_put_audio_mixer),
14650 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14652 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14653 msm_routing_get_audio_mixer,
14654 msm_routing_put_audio_mixer),
14655 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14656 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14657 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14658 msm_routing_get_audio_mixer,
14659 msm_routing_put_audio_mixer),
14660 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14661 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14662 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14663 msm_routing_get_audio_mixer,
14664 msm_routing_put_audio_mixer),
14665 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14666 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14667 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14668 msm_routing_get_audio_mixer,
14669 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014670 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14672 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14673 msm_routing_put_audio_mixer),
14674 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14675 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14676 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14677 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014678 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14680 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14681 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014682};
14683
14684static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014685 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14686 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014687 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014689 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14690 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014691 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014693 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014695 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014697 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014699 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014703 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14704 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014705 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14706 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14707 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014709 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014711 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014713 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014715 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014717 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014719 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014725 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14726 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014727 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014729 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014731 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014733 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014735 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014737 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014739 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014745 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14746 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014747 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014749 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014751 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014753 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014755 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014757 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014759 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014763 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014765 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14766 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014767 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014769 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014771 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014773 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014775 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014777 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14778 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014779 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014781 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014783 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014785 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014787 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14788 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014789 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14791 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14792 msm_routing_put_audio_mixer),
14793 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14794 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14795 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14796 msm_routing_put_audio_mixer),
14797 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14798 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14799 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14800 msm_routing_put_audio_mixer),
14801 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14803 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14804 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014805 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14807 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14808 msm_routing_put_audio_mixer),
14809 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14811 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14812 msm_routing_put_audio_mixer),
14813 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14815 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14816 msm_routing_put_audio_mixer),
14817 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14819 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14820 msm_routing_put_audio_mixer),
14821 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14823 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14824 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014825 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14827 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14828 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14831 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14832 msm_routing_put_audio_mixer),
14833 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14835 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14836 msm_routing_put_audio_mixer),
14837 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14839 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14840 msm_routing_put_audio_mixer),
14841 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14843 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14844 msm_routing_put_audio_mixer),
14845 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14847 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14848 msm_routing_put_audio_mixer),
14849 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14851 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14852 msm_routing_put_audio_mixer),
14853 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14855 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14856 msm_routing_put_audio_mixer),
14857 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14858 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14859 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14860 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014861 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14862 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14863 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14864 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014865};
14866
14867static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14868 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14869 MSM_BACKEND_DAI_AUXPCM_TX,
14870 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14871 msm_routing_put_audio_mixer),
14872 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14873 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14874 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14875 msm_routing_put_audio_mixer),
14876 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14878 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14879 msm_routing_put_audio_mixer),
14880 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14881 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14882 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14883 msm_routing_put_audio_mixer),
14884 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14886 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14887 msm_routing_put_audio_mixer),
14888 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14889 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14890 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14891 msm_routing_put_audio_mixer),
14892 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14894 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14895 msm_routing_put_audio_mixer),
14896 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14897 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14898 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14899 msm_routing_put_audio_mixer),
14900 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14901 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14902 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14903 msm_routing_put_audio_mixer),
14904 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14905 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14906 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14907 msm_routing_put_audio_mixer),
14908 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14909 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14910 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14911 msm_routing_put_audio_mixer),
14912 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14914 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14915 msm_routing_put_audio_mixer),
14916 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14917 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14918 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14919 msm_routing_put_audio_mixer),
14920 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14921 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14922 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14923 msm_routing_put_audio_mixer),
14924 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14925 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14926 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14927 msm_routing_put_audio_mixer),
14928 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14930 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14931 msm_routing_put_audio_mixer),
14932 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14934 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14935 msm_routing_put_audio_mixer),
14936 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14937 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14938 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14939 msm_routing_put_audio_mixer),
14940 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14941 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14942 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14943 msm_routing_put_audio_mixer),
14944 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14945 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14946 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14947 msm_routing_put_audio_mixer),
14948 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14950 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14951 msm_routing_put_audio_mixer),
14952 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14954 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14955 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014956 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14957 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14958 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14959 msm_routing_put_audio_mixer),
14960 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14962 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14963 msm_routing_put_audio_mixer),
14964 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14965 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14966 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14967 msm_routing_put_audio_mixer),
14968 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14970 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14971 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014972 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014973 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14974 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014975 msm_routing_put_audio_mixer),
14976 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014977 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14978 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014979 msm_routing_put_audio_mixer),
14980 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014981 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14982 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014983 msm_routing_put_audio_mixer),
14984 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014985 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14986 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014987 msm_routing_put_audio_mixer),
14988 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014989 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14990 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014991 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014992 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14994 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14995 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014996 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014997 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14998 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14999 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015000 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15002 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15003 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15006 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15007 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15010 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15011 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015012 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15014 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15015 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015016 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015017 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15018 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15019 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015020 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015022 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020015023 msm_routing_put_audio_mixer),
15024 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15025 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015026 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020015027 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015028 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15029 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15030 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15031 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032};
15033
Derek Chenb097d922019-07-31 17:28:02 -070015034static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
15035 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_PRI_TDM_TX_0,
15037 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15038 msm_routing_put_audio_mixer),
15039 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_PRI_TDM_TX_1,
15041 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15042 msm_routing_put_audio_mixer),
15043 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_PRI_TDM_TX_2,
15045 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15046 msm_routing_put_audio_mixer),
15047 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_PRI_TDM_TX_3,
15049 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15050 msm_routing_put_audio_mixer),
15051 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_SEC_TDM_TX_0,
15053 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15054 msm_routing_put_audio_mixer),
15055 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_SEC_TDM_TX_1,
15057 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15058 msm_routing_put_audio_mixer),
15059 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15060 MSM_BACKEND_DAI_SEC_TDM_TX_2,
15061 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15062 msm_routing_put_audio_mixer),
15063 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_SEC_TDM_TX_3,
15065 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15066 msm_routing_put_audio_mixer),
15067 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15068 MSM_BACKEND_DAI_TERT_TDM_TX_0,
15069 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15070 msm_routing_put_audio_mixer),
15071 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_TERT_TDM_TX_1,
15073 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15074 msm_routing_put_audio_mixer),
15075 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_TERT_TDM_TX_2,
15077 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15078 msm_routing_put_audio_mixer),
15079 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15080 MSM_BACKEND_DAI_TERT_TDM_TX_3,
15081 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15082 msm_routing_put_audio_mixer),
15083 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
15085 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15086 msm_routing_put_audio_mixer),
15087 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
15089 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15090 msm_routing_put_audio_mixer),
15091 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15092 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
15093 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15094 msm_routing_put_audio_mixer),
15095 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
15097 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15098 msm_routing_put_audio_mixer),
15099 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
15101 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15102 msm_routing_put_audio_mixer),
15103 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
15105 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15106 msm_routing_put_audio_mixer),
15107 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15108 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
15109 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15110 msm_routing_put_audio_mixer),
15111 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15112 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
15113 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15114 msm_routing_put_audio_mixer),
15115};
15116
Viraja Kommarajud3478b22019-11-04 20:38:23 +053015117static const struct snd_kcontrol_new mmul23_mixer_controls[] = {
15118 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_PRI_TDM_TX_0,
15120 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15121 msm_routing_put_audio_mixer),
15122 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_PRI_TDM_TX_1,
15124 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15125 msm_routing_put_audio_mixer),
15126 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_PRI_TDM_TX_2,
15128 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15129 msm_routing_put_audio_mixer),
15130 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
15131 MSM_BACKEND_DAI_PRI_TDM_TX_3,
15132 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15133 msm_routing_put_audio_mixer),
15134 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_SEC_TDM_TX_0,
15136 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15137 msm_routing_put_audio_mixer),
15138 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_SEC_TDM_TX_1,
15140 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15141 msm_routing_put_audio_mixer),
15142 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_SEC_TDM_TX_2,
15144 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15145 msm_routing_put_audio_mixer),
15146 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_SEC_TDM_TX_3,
15148 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15149 msm_routing_put_audio_mixer),
15150 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15151 MSM_BACKEND_DAI_TERT_TDM_TX_0,
15152 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15153 msm_routing_put_audio_mixer),
15154 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_TERT_TDM_TX_1,
15156 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15157 msm_routing_put_audio_mixer),
15158 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_TERT_TDM_TX_2,
15160 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15161 msm_routing_put_audio_mixer),
15162 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_TERT_TDM_TX_3,
15164 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15165 msm_routing_put_audio_mixer),
15166 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
15168 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15169 msm_routing_put_audio_mixer),
15170 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15171 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
15172 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15173 msm_routing_put_audio_mixer),
15174 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
15176 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15177 msm_routing_put_audio_mixer),
15178 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
15180 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15181 msm_routing_put_audio_mixer),
15182 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15183 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
15184 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15185 msm_routing_put_audio_mixer),
15186 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
15188 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15189 msm_routing_put_audio_mixer),
15190 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
15192 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15193 msm_routing_put_audio_mixer),
15194 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
15196 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15197 msm_routing_put_audio_mixer),
15198};
15199
Surendar Karkac1cde372018-08-14 18:56:24 +053015200static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
15201 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15202 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15203 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15204 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015205 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15207 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15208 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015209 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_SLIMBUS_6_TX,
15211 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15212 msm_routing_put_audio_mixer),
15213 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_SLIMBUS_7_TX,
15215 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15216 msm_routing_put_audio_mixer),
15217 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_PRI_MI2S_TX,
15219 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15220 msm_routing_put_audio_mixer),
15221 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15223 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15224 msm_routing_put_audio_mixer),
15225 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15227 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15228 msm_routing_put_audio_mixer),
15229 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15231 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15232 msm_routing_put_audio_mixer),
15233 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15234 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
15235 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15236 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015237 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15238 MSM_BACKEND_DAI_SENARY_MI2S_TX,
15239 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15240 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015241 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15243 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15244 msm_routing_put_audio_mixer),
15245 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15246 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15247 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15248 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015249 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15250 MSM_BACKEND_DAI_SLIMBUS_9_TX,
15251 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15252 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015253 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15254 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15255 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15256 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015257};
15258
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015259static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015260 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15261 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015262 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15263 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015264 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15266 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015268 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15269 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015270 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015272 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015274 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015276 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015278 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015280 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15281 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015282 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015284 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15285 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015286 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015288 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15289 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015290 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015292 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15293 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015294 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15295 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010015296 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15298 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15299 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015300 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15301 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15302 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15303 msm_routing_put_audio_mixer),
15304 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15305 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015306 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080015307 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015308 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15309 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15310 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15311 msm_routing_put_audio_mixer),
15312 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15314 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15315 msm_routing_put_audio_mixer),
15316 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15318 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15319 msm_routing_put_audio_mixer),
15320 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15321 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15322 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15323 msm_routing_put_audio_mixer),
15324 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15325 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15326 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15327 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015328 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15330 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15331 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015332 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15334 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15335 msm_routing_get_audio_mixer,
15336 msm_routing_put_audio_mixer),
15337 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15338 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15339 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15340 msm_routing_get_audio_mixer,
15341 msm_routing_put_audio_mixer),
15342 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15343 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15344 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15345 msm_routing_get_audio_mixer,
15346 msm_routing_put_audio_mixer),
15347 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15348 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15349 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15350 msm_routing_get_audio_mixer,
15351 msm_routing_put_audio_mixer),
15352 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15354 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15355 msm_routing_get_audio_mixer,
15356 msm_routing_put_audio_mixer),
15357 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15358 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15359 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15360 msm_routing_get_audio_mixer,
15361 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015362 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15363 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15364 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15365 msm_routing_put_audio_mixer),
15366 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15367 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15368 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15369 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015370 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15371 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15372 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15373 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015374};
15375
15376static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015377 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15378 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015379 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15380 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015381 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15382 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15383 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015385 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015387 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015389 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015391 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015393 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15394 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015395 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015397 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015399 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015401 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15402 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015403 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015405 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015407 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015411 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15412 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010015413 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15415 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15416 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015417 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15419 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15420 msm_routing_put_audio_mixer),
15421 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15422 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15423 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15424 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015425 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15427 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15428 msm_routing_put_audio_mixer),
15429 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15430 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15431 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15432 msm_routing_put_audio_mixer),
15433 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15434 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15435 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15436 msm_routing_put_audio_mixer),
15437 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15438 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15439 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15440 msm_routing_put_audio_mixer),
15441 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15442 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15443 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15444 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015445 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15446 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15447 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15448 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015449 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15450 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15451 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15452 msm_routing_get_audio_mixer,
15453 msm_routing_put_audio_mixer),
15454 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15455 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15456 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15457 msm_routing_get_audio_mixer,
15458 msm_routing_put_audio_mixer),
15459 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15460 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15461 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15462 msm_routing_get_audio_mixer,
15463 msm_routing_put_audio_mixer),
15464 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15465 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15466 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15467 msm_routing_get_audio_mixer,
15468 msm_routing_put_audio_mixer),
15469 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15470 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15471 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15472 msm_routing_get_audio_mixer,
15473 msm_routing_put_audio_mixer),
15474 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15475 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15476 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15477 msm_routing_get_audio_mixer,
15478 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015479 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15480 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15481 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15482 msm_routing_put_audio_mixer),
15483 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15485 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15486 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015487 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15488 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15489 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15490 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015491};
15492
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015493static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
15494 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15496 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15497 msm_routing_put_audio_mixer),
15498 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15500 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15501 msm_routing_put_audio_mixer),
15502 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_PRI_MI2S_TX,
15504 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15505 msm_routing_put_audio_mixer),
15506 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15507 MSM_BACKEND_DAI_INT3_MI2S_TX,
15508 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15509 msm_routing_put_audio_mixer),
15510 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15511 MSM_BACKEND_DAI_INT_FM_TX,
15512 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15513 msm_routing_put_audio_mixer),
15514 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15515 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15516 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15517 msm_routing_put_audio_mixer),
15518 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_AFE_PCM_TX,
15520 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15521 msm_routing_put_audio_mixer),
15522 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15523 MSM_BACKEND_DAI_INCALL_RECORD_RX,
15524 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15525 msm_routing_put_audio_mixer),
15526 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15527 MSM_BACKEND_DAI_INCALL_RECORD_TX,
15528 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15529 msm_routing_put_audio_mixer),
15530 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15531 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15532 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15533 msm_routing_put_audio_mixer),
15534 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15536 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15537 msm_routing_put_audio_mixer),
15538 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15540 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15541 msm_routing_put_audio_mixer),
15542 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15543 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15544 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15545 msm_routing_put_audio_mixer),
15546 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15547 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15548 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15549 msm_routing_put_audio_mixer),
15550 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15551 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15552 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15553 msm_routing_put_audio_mixer),
15554 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15555 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15556 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15557 msm_routing_put_audio_mixer),
15558 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15560 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15561 msm_routing_put_audio_mixer),
15562 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15563 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15564 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15565 msm_routing_get_audio_mixer,
15566 msm_routing_put_audio_mixer),
15567 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15568 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15569 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15570 msm_routing_get_audio_mixer,
15571 msm_routing_put_audio_mixer),
15572 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15573 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15574 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15575 msm_routing_get_audio_mixer,
15576 msm_routing_put_audio_mixer),
15577 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15578 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15579 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15580 msm_routing_get_audio_mixer,
15581 msm_routing_put_audio_mixer),
15582 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15583 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15584 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15585 msm_routing_get_audio_mixer,
15586 msm_routing_put_audio_mixer),
15587 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15588 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15589 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15590 msm_routing_get_audio_mixer,
15591 msm_routing_put_audio_mixer),
15592 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15594 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15595 msm_routing_put_audio_mixer),
15596 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15597 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15598 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15599 msm_routing_put_audio_mixer),
15600 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15601 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15602 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15603 msm_routing_put_audio_mixer),
15604};
15605
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015606static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015607 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015609 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15610 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015617 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15618 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015619 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15620 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015621 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15622 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015623 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015625 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15626 msm_routing_put_voice_mixer),
15627};
15628
15629static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015630 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15631 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015632 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15633 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015634 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15635 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015636 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15637 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015638 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15639 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015640 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15641 msm_routing_put_voice_mixer),
15642};
15643
15644static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015645 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15646 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015647 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15648 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015649 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15650 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15651 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15652 msm_routing_put_voice_mixer),
15653 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15654 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15655 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15656 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015657 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015659 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15660 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15664 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015665 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15666 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015667 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15668 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015669 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15670 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015671 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15672 msm_routing_put_voice_mixer),
15673};
15674
15675static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15679 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015680 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15681 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015682 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15683 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015684 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015686 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15687 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015688 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15689 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015690 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015692 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15693 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015694 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15695 msm_routing_put_voice_mixer),
15696};
15697
15698static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015699 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15700MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015701 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15702 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015703 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15704MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015705 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15706 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015707 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15708MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015709 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15710 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015711 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15712MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015713 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15714 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015715 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15716MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015717 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15718 msm_routing_put_voice_mixer),
15719};
15720
15721static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015722 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15723 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015724 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15725 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015728 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15729 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015730 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015732 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015734 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015736 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015738 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15739 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015740 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15741 msm_routing_put_voice_mixer),
15742};
15743
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015744static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15746MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015747 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15748 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15750MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015751 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15752 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015753 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15754MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015755 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15756 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015757 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15758MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015759 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15760 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015761 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15762MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015763 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15764 msm_routing_put_voice_mixer),
15765};
15766
Karthikeyan Mani57550082018-05-03 18:43:58 -070015767static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15768 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15769 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15770 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15771 msm_routing_put_voice_mixer),
15772 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15773 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15774 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15775 msm_routing_put_voice_mixer),
15776 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15777 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15778 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15779 msm_routing_put_voice_mixer),
15780 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15781 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15782 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15783 msm_routing_put_voice_mixer),
15784 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15786 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15787 msm_routing_put_voice_mixer),
15788};
15789
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015790static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15792 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015793 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15794 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015797 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15798 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15802 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015803 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15804 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015805 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15806 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015807 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15808 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015809 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15810 msm_routing_put_voice_mixer),
15811};
15812
15813static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015814 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015816 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15817 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015818 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15819 MSM_BACKEND_DAI_MI2S_RX,
15820 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15821 msm_routing_put_voice_mixer),
15822 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15823 MSM_BACKEND_DAI_MI2S_RX,
15824 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15825 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015826 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15827 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015828 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15829 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015830 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15831 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015832 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15833 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015834 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15835 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015836 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15837 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015838 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15839 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015840 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15841 msm_routing_put_voice_mixer),
15842};
15843
15844static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015845 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015846 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015847 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15848 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015849 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15850 MSM_BACKEND_DAI_PRI_MI2S_RX,
15851 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15852 msm_routing_put_voice_mixer),
15853 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15854 MSM_BACKEND_DAI_PRI_MI2S_RX,
15855 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15856 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015858 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015859 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015861 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015862 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015863 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15864 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015865 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015866 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015867 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15868 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015869 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015870 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015871 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15872 msm_routing_put_voice_mixer),
15873};
15874
15875static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015876 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15877MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015878 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15879 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015880 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15881MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015882 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15883 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015884 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15885MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015886 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15887 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015888 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15889MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015890 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15891 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015892 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15893MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015894 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15895 msm_routing_put_voice_mixer),
15896};
15897
15898static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015899 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15900 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015901 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15902 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015903 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15904 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015905 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015909 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015911 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15912 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015913 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015915 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15916 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015917 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15918 msm_routing_put_voice_mixer),
15919};
15920
15921static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015922 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015924 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15925 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015926 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15927 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15928 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15929 msm_routing_put_voice_mixer),
15930 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15932 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015934 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15935 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015936 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015938 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015940 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015942 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15943 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015944 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15945 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15947 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015948 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15949 msm_routing_put_voice_mixer),
15950};
15951
15952static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015953 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15954 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015955 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15956 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015957 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15958 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15959 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15960 msm_routing_put_voice_mixer),
15961 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15962 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15963 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15964 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15968 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015969 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15970 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015971 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15972 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015973 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15974 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015975 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15976 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015977 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15978 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015979 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15980 msm_routing_put_voice_mixer),
15981};
15982
15983static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015984 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15985 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015986 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15987 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015988 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15989 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15990 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15991 msm_routing_put_voice_stub_mixer),
15992 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15993 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15994 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15995 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015996 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015998 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15999 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016002 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16003 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016004 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16005 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016006 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16007 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016008 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16009 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016010 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16011 msm_routing_put_voice_mixer),
16012};
16013
Karthikeyan Manic3700752019-03-11 18:33:53 -070016014static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
16015 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16017 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16018 msm_routing_put_voice_mixer),
16019 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16020 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16021 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16022 msm_routing_put_voice_mixer),
16023 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16025 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16026 msm_routing_put_voice_mixer),
16027 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16028 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16029 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16030 msm_routing_put_voice_mixer),
16031 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16033 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16034 msm_routing_put_voice_mixer),
16035};
16036
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016037static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016040 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16041 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016042 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16043 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016044 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16045 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016048 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16049 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016050 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16051 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016052 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16053 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016054 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016056 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16057 msm_routing_put_voice_mixer),
16058};
16059
16060static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016061 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016063 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16064 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016065 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16066 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016067 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16068 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016069 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16070 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016071 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16072 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016073 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016075 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16076 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016077 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16078 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016079 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16080 msm_routing_put_voice_mixer),
16081};
16082
16083static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016084 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16085MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016086 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16087 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16089MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016090 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16091 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016092 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16093MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016094 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16095 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016096 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16097MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016098 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16099 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016100 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16101MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016102 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16103 msm_routing_put_voice_mixer),
16104};
16105
16106static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016107 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16108MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016109 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16110 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016111 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16112MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016113 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16114 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016115 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16116MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016117 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16118 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016119 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16120MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016121 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16122 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016123 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16124MSM_BACKEND_DAI_TERT_AUXPCM_RX,
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),
16127};
16128
16129static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016130 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16131MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016132 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16133 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016134 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16135MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016136 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16137 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016138 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16139MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016140 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16141 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016142 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16143MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016144 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16145 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16147MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016148 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16149 msm_routing_put_voice_mixer),
16150};
16151
Rohit Kumara5077932017-09-10 22:05:05 +053016152static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16154MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016155 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16156 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16158MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016159 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16160 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16162MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016163 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16164 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016165 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16166MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016167 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16168 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016169 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16170MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016171 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16172 msm_routing_put_voice_mixer),
16173};
16174
Karthikeyan Manic3700752019-03-11 18:33:53 -070016175static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
16176 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16177 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16178 msm_routing_put_voice_mixer),
16179 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16180 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16181 msm_routing_put_voice_mixer),
16182 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16183 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16184 msm_routing_put_voice_mixer),
16185 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16186 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16187 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16188 msm_routing_put_voice_mixer),
16189 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16190 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16191 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16192 msm_routing_put_voice_mixer),
16193};
16194
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016195static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16199 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016200 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016202 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16203 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016206 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16207 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016208 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16209 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016210 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16211 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016212 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016214 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16215 msm_routing_put_voice_mixer),
16216};
16217
16218static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016219 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16220MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016221 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16222 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016223 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16224MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016225 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16226 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16228MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016229 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16230 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016231 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16232MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016233 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16234 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016235 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16236MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016237 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16238 msm_routing_put_voice_mixer),
16239};
16240
16241static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016242 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_SLIMBUS_8_RX,
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("DTMF", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016248 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16249 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016250 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016252 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16253 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016256 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16257 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016258 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16259 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016260 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16261 msm_routing_put_voice_mixer),
16262};
16263
16264static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016265 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16266 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016267 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16268 msm_routing_put_voice_mixer),
16269};
16270
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053016271static const struct snd_kcontrol_new quin_tdm_rx_2_voice_mixer_controls[] = {
16272 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16273 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
16274 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16275 msm_routing_put_voice_mixer),
16276};
16277
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016278static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
16279 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16281 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16282 msm_routing_put_voice_mixer),
16283 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16284 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16285 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16286 msm_routing_put_voice_mixer),
16287 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16288 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16289 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16290 msm_routing_put_voice_mixer),
16291 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16292 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16293 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16294 msm_routing_put_voice_mixer),
16295 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16296 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16297 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16298 msm_routing_put_voice_mixer),
16299};
16300
16301static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
16302 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16304 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16305 msm_routing_put_voice_mixer),
16306 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16307 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16308 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16309 msm_routing_put_voice_mixer),
16310 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16312 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16313 msm_routing_put_voice_mixer),
16314 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16316 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16317 msm_routing_put_voice_mixer),
16318 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16319 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16320 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16321 msm_routing_put_voice_mixer),
16322};
16323
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016324static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
16325 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16327 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16328 msm_routing_put_voice_mixer),
16329 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16331 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16332 msm_routing_put_voice_mixer),
16333 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16335 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16336 msm_routing_put_voice_mixer),
16337 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16339 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16340 msm_routing_put_voice_mixer),
16341 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16342 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16343 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16344 msm_routing_put_voice_mixer),
16345};
16346
16347static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
16348 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16350 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16351 msm_routing_put_voice_mixer),
16352 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16354 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16355 msm_routing_put_voice_mixer),
16356 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16358 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16359 msm_routing_put_voice_mixer),
16360 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16362 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16363 msm_routing_put_voice_mixer),
16364 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16365 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16366 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16367 msm_routing_put_voice_mixer),
16368};
16369
16370static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
16371 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16373 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16374 msm_routing_put_voice_mixer),
16375 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16377 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16378 msm_routing_put_voice_mixer),
16379 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16381 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16382 msm_routing_put_voice_mixer),
16383 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16385 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16386 msm_routing_put_voice_mixer),
16387 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16389 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16390 msm_routing_put_voice_mixer),
16391};
16392
16393static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
16394 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16395 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16396 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16397 msm_routing_put_voice_mixer),
16398 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16400 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16401 msm_routing_put_voice_mixer),
16402 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16404 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16405 msm_routing_put_voice_mixer),
16406 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16408 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16409 msm_routing_put_voice_mixer),
16410 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16412 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16413 msm_routing_put_voice_mixer),
16414};
16415
16416static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
16417 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16419 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16420 msm_routing_put_voice_mixer),
16421 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16422 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16423 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16424 msm_routing_put_voice_mixer),
16425 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16426 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16427 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16428 msm_routing_put_voice_mixer),
16429 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16430 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16431 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16432 msm_routing_put_voice_mixer),
16433 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16434 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16435 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16436 msm_routing_put_voice_mixer),
16437};
16438
16439static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
16440 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16442 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16443 msm_routing_put_voice_mixer),
16444 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16446 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16447 msm_routing_put_voice_mixer),
16448 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16450 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16451 msm_routing_put_voice_mixer),
16452 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16454 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16455 msm_routing_put_voice_mixer),
16456 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16457 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16458 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16459 msm_routing_put_voice_mixer),
16460};
16461
16462static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
16463 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16464 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16465 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16466 msm_routing_put_voice_mixer),
16467 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16469 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16470 msm_routing_put_voice_mixer),
16471 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16473 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16474 msm_routing_put_voice_mixer),
16475 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16477 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16478 msm_routing_put_voice_mixer),
16479 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16481 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16482 msm_routing_put_voice_mixer),
16483};
16484
16485static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
16486 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16487 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16488 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16489 msm_routing_put_voice_mixer),
16490 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16492 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16493 msm_routing_put_voice_mixer),
16494 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16495 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16496 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16497 msm_routing_put_voice_mixer),
16498 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16499 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16500 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16501 msm_routing_put_voice_mixer),
16502 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16503 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16504 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16505 msm_routing_put_voice_mixer),
16506};
16507
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016508static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
16509 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16510 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16511 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16512 msm_routing_put_voice_mixer),
16513 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16514 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16515 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16516 msm_routing_put_voice_stub_mixer),
16517 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16518 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16519 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16520 msm_routing_put_voice_stub_mixer),
16521 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16522 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16523 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16524 msm_routing_put_voice_mixer),
16525 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16527 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16528 msm_routing_put_voice_mixer),
16529 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16530 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16531 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16532 msm_routing_put_voice_mixer),
16533 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16534 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16535 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16536 msm_routing_put_voice_mixer),
16537 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16538 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16539 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16540 msm_routing_put_voice_mixer),
16541};
16542
16543static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
16544 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16545 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16546 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16547 msm_routing_put_voice_mixer),
16548 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16549 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16550 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16551 msm_routing_put_voice_stub_mixer),
16552 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16554 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16555 msm_routing_put_voice_stub_mixer),
16556 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16558 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16559 msm_routing_put_voice_mixer),
16560 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16562 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16563 msm_routing_put_voice_mixer),
16564 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16565 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16566 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16567 msm_routing_put_voice_mixer),
16568 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16569 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16570 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16571 msm_routing_put_voice_mixer),
16572 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16573 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16574 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16575 msm_routing_put_voice_mixer),
16576};
16577
16578static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
16579 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16580 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16581 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16582 msm_routing_put_voice_mixer),
16583 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16585 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16586 msm_routing_put_voice_stub_mixer),
16587 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16588 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16589 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16590 msm_routing_put_voice_stub_mixer),
16591 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16592 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16593 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16594 msm_routing_put_voice_mixer),
16595 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16596 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16597 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16598 msm_routing_put_voice_mixer),
16599 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16600 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16601 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16602 msm_routing_put_voice_mixer),
16603 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16605 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16606 msm_routing_put_voice_mixer),
16607 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16608 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16609 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16610 msm_routing_put_voice_mixer),
16611};
16612
16613static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
16614 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16616 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16617 msm_routing_put_voice_mixer),
16618 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16620 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16621 msm_routing_put_voice_stub_mixer),
16622 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16624 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16625 msm_routing_put_voice_stub_mixer),
16626 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16628 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16629 msm_routing_put_voice_mixer),
16630 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16631 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16632 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16633 msm_routing_put_voice_mixer),
16634 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16636 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16637 msm_routing_put_voice_mixer),
16638 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16640 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16641 msm_routing_put_voice_mixer),
16642 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16643 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16644 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16645 msm_routing_put_voice_mixer),
16646};
16647
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016648static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016649 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16650 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016651 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016653 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016655 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16656 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016657};
16658
16659static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016660 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16661 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016662 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16663 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016664 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16665 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016666 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16667 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016668};
16669
16670static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016671 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16672 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016673 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16674 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016675 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16676 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016677 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16678 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016679};
16680
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016681static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016682 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16683 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016684 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16685 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016686 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16687 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016688 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16689 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016690 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016691 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16692 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016693 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016694 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16695 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016696 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016697 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16698 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016699 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016700 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16701 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016702 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016703 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16704 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016705 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016706 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16707 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016708 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016709 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16710 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016711 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016712 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16713 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016714 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16715 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16716 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016717 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016718 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16719 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016720 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16721 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16722 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016723 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016724 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16725 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016726 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016727 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16728 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016729 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016730 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16731 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016732 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016733 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16734 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016735 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16736 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016737 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16738 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016739 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016740 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016741 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016742 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16743 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16744 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16745 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16746 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16747 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016748 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16749 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16750 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016751 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16752 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16753 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16754 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16755 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16756 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16757 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16758 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16759 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16760 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16761 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16762 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16763 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16764 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16765 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16766 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16767 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16768 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016769 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16770 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16771 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16772 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16773 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16774 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016775 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016776 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16777 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016778};
16779
16780static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016781 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16782 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016783 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16784 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016785 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16786 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016787 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16788 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016789 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016790 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16791 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016792 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016793 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16794 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016795 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016796 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16797 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016798 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016799 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16800 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016801 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016802 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16803 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016804 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16806 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016807 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016808 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16809 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016810 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016811 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16812 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016813 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16814 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16815 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016816 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016817 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16818 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016819 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16820 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16821 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016822 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016823 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16824 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016825 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016826 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16827 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016828 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016829 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16830 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016831 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016832 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16833 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016834 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016835 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16836 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016837 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16838 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16839 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16840 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16841 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16842 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016843 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16844 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16845 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016846 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16847 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16848 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16849 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16850 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16851 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16852 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16853 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16854 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16855 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16856 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16857 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16858 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16859 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16860 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16861 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16862 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16863 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016864 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16865 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16866 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16867 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16868 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16869 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016870 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16871 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016872 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016873};
16874
16875static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016876 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16877 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016878 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16879 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016880 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16881 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016882 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16883 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016884 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
16885 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016886 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16887 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016888 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16889 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016890 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16891 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016892 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16893 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016894 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16895 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016896 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16897 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016898 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16899 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016900 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16901 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016902 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16903 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016904 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16905 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016906 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16907 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016908 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16909 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016910 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16911 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016912 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16913 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016914 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16915 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016916 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16917 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16918 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16919 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016920 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16921 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016922 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16923 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016924 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16925 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16926 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16927 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016928 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16929 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016930 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16931 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016932 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16933 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016934 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16935 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016936 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
16937 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016938 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16939 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016940 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
16941 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016942 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16943 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016944 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16945 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016946 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16947 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016948 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16949 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16950 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16951 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16952 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16953 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016954 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16955 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16956 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016957 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16958 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16959 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16962 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16963 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16965 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16966 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16967 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16968 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16971 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16972 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16973 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16974 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016975 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16976 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16977 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016978};
16979
16980static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016981 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16982 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016983 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16984 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016985 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16986 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016987 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16988 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016989 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16990 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016991 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16992 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016993 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16994 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016995 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16996 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016997 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16998 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016999 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17000 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017001 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17002 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017003 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17004 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017005 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17006 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017007 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17008 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017009 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017011 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17012 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017013 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017015 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17016 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017017 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17018 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017019 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17020 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017021 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17022 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017023 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17024 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017025 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17026 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017027 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17028 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017029 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17030 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017031 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17032 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017033 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17034 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017035 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17036 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017037 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17038 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17039 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17040 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017041 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17042 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017043 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17044 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017045 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
17046 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017047 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17048 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017049 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17050 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017051 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17052 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017053 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17054 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017055 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17056 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017057 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17058 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017059 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17060 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017061 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17062 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
17063 1, 0, msm_routing_get_voice_stub_mixer,
17064 msm_routing_put_voice_stub_mixer),
17065 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17066 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
17067 1, 0, msm_routing_get_voice_stub_mixer,
17068 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017069 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17070 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
17071 1, 0, msm_routing_get_voice_stub_mixer,
17072 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017073 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17074 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
17075 1, 0, msm_routing_get_voice_stub_mixer,
17076 msm_routing_put_voice_stub_mixer),
17077 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17078 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
17079 1, 0, msm_routing_get_voice_stub_mixer,
17080 msm_routing_put_voice_stub_mixer),
17081 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
17082 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
17083 1, 0, msm_routing_get_voice_stub_mixer,
17084 msm_routing_put_voice_stub_mixer),
17085 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
17087 1, 0, msm_routing_get_voice_stub_mixer,
17088 msm_routing_put_voice_stub_mixer),
17089 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
17090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
17091 1, 0, msm_routing_get_voice_stub_mixer,
17092 msm_routing_put_voice_stub_mixer),
17093 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
17094 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
17095 1, 0, msm_routing_get_voice_stub_mixer,
17096 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017097};
17098
17099static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017100 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
17101 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017102 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17103 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017104 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17105 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017106 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17107 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017108 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
17109 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017110 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17111 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017112 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17113 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017114 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17115 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017116 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17117 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017118 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17119 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017120 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17121 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017122 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17123 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017124 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17125 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017126 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17127 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017128 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17129 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017130 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17131 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017132 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17133 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17134 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17135 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017136 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17137 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017138 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17139 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017140 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
17141 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017142 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17143 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017144 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17145 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017146 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17147 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017148 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17149 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017150 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17151 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017152 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17153 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017154 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17155 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070017156 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17157 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
17158 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17159 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017160 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17161 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017162 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17163 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017164 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17165 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017166 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17167 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017168 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17169 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
17170 1, 0, msm_routing_get_voice_stub_mixer,
17171 msm_routing_put_voice_stub_mixer),
17172 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17173 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
17174 1, 0, msm_routing_get_voice_stub_mixer,
17175 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017176 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17177 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
17178 1, 0, msm_routing_get_voice_stub_mixer,
17179 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017180 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17181 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
17182 1, 0, msm_routing_get_voice_stub_mixer,
17183 msm_routing_put_voice_stub_mixer),
17184 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
17186 1, 0, msm_routing_get_voice_stub_mixer,
17187 msm_routing_put_voice_stub_mixer),
17188 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
17189 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
17190 1, 0, msm_routing_get_voice_stub_mixer,
17191 msm_routing_put_voice_stub_mixer),
17192 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17193 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
17194 1, 0, msm_routing_get_voice_stub_mixer,
17195 msm_routing_put_voice_stub_mixer),
17196 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
17197 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
17198 1, 0, msm_routing_get_voice_stub_mixer,
17199 msm_routing_put_voice_stub_mixer),
17200 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
17201 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
17202 1, 0, msm_routing_get_voice_stub_mixer,
17203 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017204};
17205
17206static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017207 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
17208 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017209 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17210 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017211 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17212 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017213 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17214 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017215 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
17216 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017217 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17218 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017219 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17220 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017221 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17222 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017223 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17224 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017225 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17226 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017227 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17228 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017229 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17230 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017231 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17232 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017233 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17234 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017235 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17236 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017237 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17238 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017239 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17240 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17241 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17242 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017243 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17244 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017245 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17246 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017247 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
17248 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017249 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17250 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017251 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17252 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017253 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17254 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017255 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17256 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017257 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17258 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017259 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17260 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017261 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17262 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017263 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17264 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017265 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17266 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017267 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17268 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017269 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17270 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017271 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17272 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17273 1, 0, msm_routing_get_voice_stub_mixer,
17274 msm_routing_put_voice_stub_mixer),
17275 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17276 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
17277 1, 0, msm_routing_get_voice_stub_mixer,
17278 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017279 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17280 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
17281 1, 0, msm_routing_get_voice_stub_mixer,
17282 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017283 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17284 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17285 1, 0, msm_routing_get_voice_stub_mixer,
17286 msm_routing_put_voice_stub_mixer),
17287 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
17289 1, 0, msm_routing_get_voice_stub_mixer,
17290 msm_routing_put_voice_stub_mixer),
17291 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
17292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
17293 1, 0, msm_routing_get_voice_stub_mixer,
17294 msm_routing_put_voice_stub_mixer),
17295 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17296 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
17297 1, 0, msm_routing_get_voice_stub_mixer,
17298 msm_routing_put_voice_stub_mixer),
17299 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
17300 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
17301 1, 0, msm_routing_get_voice_stub_mixer,
17302 msm_routing_put_voice_stub_mixer),
17303 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
17304 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
17305 1, 0, msm_routing_get_voice_stub_mixer,
17306 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017307};
17308
17309static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017310 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
17311 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017312 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17313 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017314 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
17315 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017316 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17317 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017318 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
17319 MSM_BACKEND_DAI_INT_BT_SCO_TX,
17320 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017321 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017322 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
17323 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017324 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17325 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017326 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17327 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017328 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17329 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017330 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17331 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017332 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17333 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017334 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17335 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017336 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17337 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017338 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17339 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017340 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17341 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017342 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17343 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017344 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17345 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017346 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17347 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17348 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17349 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017350 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
17351 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017352 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17353 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017354 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
17355 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017356 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17357 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017358 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
17359 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017360 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17361 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017362 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
17363 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017364 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17365 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017366 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
17367 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017368 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17369 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017370 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
17371 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017372 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17373 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017374 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
17375 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017376 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17377 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017378 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17379 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17380 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17381 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17382 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17383 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017384 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17385 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17386 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017387 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17388 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17389 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17390 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17391 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17392 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17393 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17394 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17395 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17396 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
17397 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
17398 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17399 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
17400 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
17401 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17402 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
17403 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
17404 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017405};
17406
17407static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017408 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17409 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017410 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017412 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17413 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017414 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017416 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17417 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017418 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017420 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17421 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017422 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017424 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17425 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017426 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17427 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017428 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17429 MSM_BACKEND_DAI_INT0_MI2S_RX,
17430 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017432 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17433 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017434 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017436 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17437 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017438 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017440 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17441 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017442 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017444 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17445 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017446 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017448 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17449 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017450 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17451 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017452 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17453 MSM_BACKEND_DAI_INT0_MI2S_RX,
17454 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17455 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017456};
17457
17458static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017459 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17460 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017461 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017463 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17464 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017465 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017467 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17468 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017469 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017471 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17472 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017473 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017475 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17476 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017477 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17478 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017479 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17480 MSM_BACKEND_DAI_INT4_MI2S_RX,
17481 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017483 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17484 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017485 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017487 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17488 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017489 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017491 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17492 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017493 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017495 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17496 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017497 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017499 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17500 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017501 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17502 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017503 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17504 MSM_BACKEND_DAI_INT4_MI2S_RX,
17505 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17506 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017507};
17508
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017509static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
17510 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17511 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17512 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17513 msm_routing_put_port_mixer),
17514 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17515 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17516 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17517 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017518 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17519 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17520 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17521 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017522 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17523 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17524 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17525 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017526};
17527
17528static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
17529 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17530 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17531 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17532 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017533 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17534 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17535 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17536 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017537 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080017538 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017539 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17540 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017541 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17542 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17543 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17544 msm_routing_put_port_mixer),
17545
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017546};
17547
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053017548static const struct snd_kcontrol_new rx_cdc_dma_rx_1_port_mixer_controls[] = {
17549 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17550 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17551 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17552 msm_routing_put_port_mixer),
17553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17554 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17556 msm_routing_put_port_mixer),
17557 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17558 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17559 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17560 msm_routing_put_port_mixer),
17561 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17562 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17563 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17564 msm_routing_put_port_mixer),
17565};
17566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017567static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017568 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17569 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017570 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017572 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17573 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017574 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017576 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17577 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017578 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017580 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17581 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017582 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017584 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17585 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017586 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017588 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17589 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017590 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017592 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17593 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017594 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017596 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17597 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017598 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017600 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17601 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017602 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017604 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17605 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017606 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17607 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017608 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17609 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17610 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017612 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17613 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017614 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017616 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17617 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017618 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017620 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17621 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017622 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017624 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17625 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017626 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017628 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17629 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017630 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017632 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17633 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017634 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17635 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017636 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17637 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17638 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017640 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17641 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017642 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017644 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
17645 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017646 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017648 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
17649 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017650 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017652 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
17653 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017654 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017656 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
17657 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017658 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017660 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
17661 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017662 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17663 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017664 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
17665 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17666 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17667 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017668 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17669 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17670 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053017671 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017672};
17673
17674static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017675 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17676 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017677 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017679 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17680 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017681 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017683 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17684 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017685 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017687 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17688 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017689 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017691 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17692 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017693 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017695 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17696 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017697 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17698 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017699 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17700 MSM_BACKEND_DAI_AUXPCM_RX,
17701 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17702 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017703};
17704
17705static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017706 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17707 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017708 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017710 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17711 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017712 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017714 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17715 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017716 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017718 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17719 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017720 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17721 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017722};
17723
17724static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017725 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17726 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017727 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017729 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17730 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017731 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017733 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17734 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017735 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17736 msm_routing_put_port_mixer),
17737};
17738
17739static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017740 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17741 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017742 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017744 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17745 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017746 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017748 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17749 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017750 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17751 msm_routing_put_port_mixer),
17752};
17753
Rohit Kumara5077932017-09-10 22:05:05 +053017754static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017755 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17756 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017757 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017759 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17760 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017761 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017763 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17764 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017765 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17766 msm_routing_put_port_mixer),
17767};
17768
Karthikeyan Manic3700752019-03-11 18:33:53 -070017769static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17770 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17771 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17772 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17773 msm_routing_put_port_mixer),
17774 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17775 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17776 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17777 msm_routing_put_port_mixer),
17778 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17779 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17780 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17781 msm_routing_put_port_mixer),
17782};
17783
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017784static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017785 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17786 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017787 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017789 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17790 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017791 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
17792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017793 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17794 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017795 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017797 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17798 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017799 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017801 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17802 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017803 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017805 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17806 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017807 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17808 msm_routing_put_port_mixer),
17809};
17810
17811static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017812 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17813 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017814 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017816 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17817 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017818 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017820 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17821 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017822 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017824 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17825 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017826 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
17827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017828 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
17829 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017830 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17831 msm_routing_put_port_mixer),
17832};
17833
17834static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017835 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17836 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017837 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017839 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17840 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017841 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017843 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17844 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017845 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017847 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17848 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017849 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017851 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17852 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017853 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017855 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17856 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017857 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017859 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17860 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017861 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017863 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17864 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017865 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017867 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17868 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017869 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017871 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17872 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017873 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017875 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17876 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017877 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017879 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17880 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017881 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17882 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017883 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17884 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17885 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17886 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017887};
17888
17889static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017890 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17891 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017892 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017894 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17895 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017896 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17897 msm_routing_put_port_mixer),
17898};
17899
17900static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017901 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17902 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017903 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017905 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17906 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017907 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17908 msm_routing_put_port_mixer),
17909};
17910
17911
17912static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017913 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17914 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017915 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17916 msm_routing_put_port_mixer),
17917};
17918
17919static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017920 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17921 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017922 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17923 msm_routing_put_port_mixer),
17924};
17925
Karthikeyan Mani57550082018-05-03 18:43:58 -070017926static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17927 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17928 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17929 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17930 msm_routing_put_port_mixer),
17931};
17932
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017933static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017934 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17935 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017936 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17937 msm_routing_put_port_mixer),
17938};
17939
17940static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017941 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17942 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017943 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017945 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17946 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017947 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17948 msm_routing_put_port_mixer),
17949};
17950
17951static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017952 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17953 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017954 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017956 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17957 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017958 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017960 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17961 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017962 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017964 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17965 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017966 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017968 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17969 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017970 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017972 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17973 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017974 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017976 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17977 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017978 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17979 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017980 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17981 MSM_BACKEND_DAI_PRI_MI2S_RX,
17982 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017984 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17985 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017986 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017988 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17989 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017990 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017992 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17993 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017994 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17995 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017996};
17997
17998static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017999 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
18000 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018001 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
18002 msm_routing_put_port_mixer),
18003};
18004
18005static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018006 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18007 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018008 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018010 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18011 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018012 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018014 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18015 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018016 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
18017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018018 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18019 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018020 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
18021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018022 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
18023 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018024 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
18025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018026 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18027 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018028 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018030 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18031 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018032 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018034 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
18035 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018036 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18037 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018038 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18039 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
18040 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018042 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
18043 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018044 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18045 msm_routing_put_port_mixer),
18046};
18047
Rohit Kumara5077932017-09-10 22:05:05 +053018048static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018049 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18050 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018051 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018053 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18054 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018055 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018057 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
18058 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018059 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
18060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018061 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18062 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018063 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018065 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
18066 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018067 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18068 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018069 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18070 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
18071 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018073 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18074 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018075 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018077 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
18078 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018079 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18080 msm_routing_put_port_mixer),
18081};
18082
Karthikeyan Manic3700752019-03-11 18:33:53 -070018083static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
18084 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18085 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18086 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18087 msm_routing_put_port_mixer),
18088 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18089 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18090 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18091 msm_routing_put_port_mixer),
18092 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
18093 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18094 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
18095 msm_routing_put_port_mixer),
18096 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18097 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18098 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18099 msm_routing_put_port_mixer),
18100 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
18101 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18102 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18103 msm_routing_put_port_mixer),
18104 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18105 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18106 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18107 msm_routing_put_port_mixer),
18108 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18109 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18110 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18111 msm_routing_put_port_mixer),
18112 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
18113 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18114 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18115 msm_routing_put_port_mixer),
18116};
18117
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018118static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018119 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18120 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018121 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18122 msm_routing_get_port_mixer,
18123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018124 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18125 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018126 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18127 msm_routing_get_port_mixer,
18128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018129 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18130 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018131 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18132 msm_routing_get_port_mixer,
18133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018134 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18135 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018136 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18137 msm_routing_get_port_mixer,
18138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018139 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18140 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018141 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18142 msm_routing_get_port_mixer,
18143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018144 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18145 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018146 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18147 msm_routing_get_port_mixer,
18148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018149 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18150 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018151 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18152 msm_routing_get_port_mixer,
18153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018154 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18155 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018156 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18157 msm_routing_get_port_mixer,
18158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018159 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18160 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018161 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18162 msm_routing_get_port_mixer,
18163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018164 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18165 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018166 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18167 msm_routing_get_port_mixer,
18168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018169 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18170 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018171 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18172 msm_routing_get_port_mixer,
18173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018174 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18175 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018176 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18177 msm_routing_get_port_mixer,
18178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018179 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18180 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018181 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18182 msm_routing_get_port_mixer,
18183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018184 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18185 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018186 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18187 msm_routing_get_port_mixer,
18188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018189 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18190 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018191 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18192 msm_routing_get_port_mixer,
18193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018194 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18195 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018196 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18197 msm_routing_get_port_mixer,
18198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018199 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18200 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018201 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18202 msm_routing_get_port_mixer,
18203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018204 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18205 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018206 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18207 msm_routing_get_port_mixer,
18208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018209 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18210 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018211 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18212 msm_routing_get_port_mixer,
18213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018214 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18215 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018216 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18217 msm_routing_get_port_mixer,
18218 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018219 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18220 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18221 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18222 msm_routing_get_port_mixer,
18223 msm_routing_put_port_mixer),
18224 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18225 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18226 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18227 msm_routing_get_port_mixer,
18228 msm_routing_put_port_mixer),
18229 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18230 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18231 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18232 msm_routing_get_port_mixer,
18233 msm_routing_put_port_mixer),
18234 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18235 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18236 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18237 msm_routing_get_port_mixer,
18238 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018239};
18240
18241static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018242 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18243 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018244 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18245 msm_routing_get_port_mixer,
18246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018247 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18248 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018249 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18250 msm_routing_get_port_mixer,
18251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018252 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18253 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018254 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18255 msm_routing_get_port_mixer,
18256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018257 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18258 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018259 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18260 msm_routing_get_port_mixer,
18261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018262 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18263 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018264 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18265 msm_routing_get_port_mixer,
18266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018267 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18268 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018269 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18270 msm_routing_get_port_mixer,
18271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018272 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18273 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018274 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18275 msm_routing_get_port_mixer,
18276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018277 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18278 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018279 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18280 msm_routing_get_port_mixer,
18281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018282 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18283 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018284 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18285 msm_routing_get_port_mixer,
18286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018287 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18288 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018289 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18290 msm_routing_get_port_mixer,
18291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018292 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18293 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018294 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18295 msm_routing_get_port_mixer,
18296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018297 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18298 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018299 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18300 msm_routing_get_port_mixer,
18301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018302 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18303 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018304 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18305 msm_routing_get_port_mixer,
18306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018307 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18308 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018309 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18310 msm_routing_get_port_mixer,
18311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018312 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18313 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018314 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18315 msm_routing_get_port_mixer,
18316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018317 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18318 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018319 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18320 msm_routing_get_port_mixer,
18321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018322 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18323 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018324 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18325 msm_routing_get_port_mixer,
18326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018327 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18328 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018329 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18330 msm_routing_get_port_mixer,
18331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018332 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18333 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018334 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18335 msm_routing_get_port_mixer,
18336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018337 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18338 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018339 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18340 msm_routing_get_port_mixer,
18341 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018342 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18343 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18344 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18345 msm_routing_get_port_mixer,
18346 msm_routing_put_port_mixer),
18347 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18348 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18349 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18350 msm_routing_get_port_mixer,
18351 msm_routing_put_port_mixer),
18352 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18353 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18354 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18355 msm_routing_get_port_mixer,
18356 msm_routing_put_port_mixer),
18357 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18358 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18359 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18360 msm_routing_get_port_mixer,
18361 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018362};
18363
18364static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018365 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18366 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018367 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18368 msm_routing_get_port_mixer,
18369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018370 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18371 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018372 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18373 msm_routing_get_port_mixer,
18374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018375 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18376 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018377 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18378 msm_routing_get_port_mixer,
18379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018380 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18381 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018382 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18383 msm_routing_get_port_mixer,
18384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018385 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18386 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018387 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18388 msm_routing_get_port_mixer,
18389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018390 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18391 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018392 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18393 msm_routing_get_port_mixer,
18394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018395 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18396 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018397 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18398 msm_routing_get_port_mixer,
18399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018400 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18401 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018402 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18403 msm_routing_get_port_mixer,
18404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018405 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18406 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018407 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18408 msm_routing_get_port_mixer,
18409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018410 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18411 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018412 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18413 msm_routing_get_port_mixer,
18414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018415 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18416 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018417 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18418 msm_routing_get_port_mixer,
18419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018420 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18421 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018422 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18423 msm_routing_get_port_mixer,
18424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018425 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18426 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018427 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18428 msm_routing_get_port_mixer,
18429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018430 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18431 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018432 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18433 msm_routing_get_port_mixer,
18434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018435 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18436 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018437 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18438 msm_routing_get_port_mixer,
18439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018440 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18441 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018442 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18443 msm_routing_get_port_mixer,
18444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018445 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18446 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018447 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18448 msm_routing_get_port_mixer,
18449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018450 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18451 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018452 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18453 msm_routing_get_port_mixer,
18454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018455 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18456 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018457 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18458 msm_routing_get_port_mixer,
18459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018460 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18461 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018462 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18463 msm_routing_get_port_mixer,
18464 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018465 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18466 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18467 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18468 msm_routing_get_port_mixer,
18469 msm_routing_put_port_mixer),
18470 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18471 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18472 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18473 msm_routing_get_port_mixer,
18474 msm_routing_put_port_mixer),
18475 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18476 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18477 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18478 msm_routing_get_port_mixer,
18479 msm_routing_put_port_mixer),
18480 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18481 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18482 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18483 msm_routing_get_port_mixer,
18484 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018485};
18486
18487static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018488 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18489 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018490 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18491 msm_routing_get_port_mixer,
18492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018493 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18494 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018495 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18496 msm_routing_get_port_mixer,
18497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018498 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18499 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018500 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18501 msm_routing_get_port_mixer,
18502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018503 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18504 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018505 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18506 msm_routing_get_port_mixer,
18507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018508 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18509 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018510 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18511 msm_routing_get_port_mixer,
18512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018513 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18514 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018515 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18516 msm_routing_get_port_mixer,
18517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018518 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18519 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018520 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18521 msm_routing_get_port_mixer,
18522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018523 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18524 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018525 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18526 msm_routing_get_port_mixer,
18527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018528 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18529 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018530 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18531 msm_routing_get_port_mixer,
18532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018533 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18534 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018535 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18536 msm_routing_get_port_mixer,
18537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018538 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18539 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018540 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18541 msm_routing_get_port_mixer,
18542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018543 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18544 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018545 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18546 msm_routing_get_port_mixer,
18547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018548 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18549 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018550 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18551 msm_routing_get_port_mixer,
18552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018553 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18554 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018555 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18556 msm_routing_get_port_mixer,
18557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018558 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18559 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018560 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18561 msm_routing_get_port_mixer,
18562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018563 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18564 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018565 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18566 msm_routing_get_port_mixer,
18567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018568 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18569 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018570 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18571 msm_routing_get_port_mixer,
18572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018573 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18574 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018575 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18576 msm_routing_get_port_mixer,
18577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018578 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18579 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018580 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18581 msm_routing_get_port_mixer,
18582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018583 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18584 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018585 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18586 msm_routing_get_port_mixer,
18587 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018588 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18589 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18590 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18591 msm_routing_get_port_mixer,
18592 msm_routing_put_port_mixer),
18593 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18594 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18595 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18596 msm_routing_get_port_mixer,
18597 msm_routing_put_port_mixer),
18598 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18599 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18600 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18601 msm_routing_get_port_mixer,
18602 msm_routing_put_port_mixer),
18603 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18604 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18605 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18606 msm_routing_get_port_mixer,
18607 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018608};
18609
18610static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018611 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18612 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018613 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18614 msm_routing_get_port_mixer,
18615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018616 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18617 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018618 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18619 msm_routing_get_port_mixer,
18620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018621 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18622 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018623 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18624 msm_routing_get_port_mixer,
18625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018626 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18627 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018628 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18629 msm_routing_get_port_mixer,
18630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018631 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18632 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018633 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18634 msm_routing_get_port_mixer,
18635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018636 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18637 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018638 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18639 msm_routing_get_port_mixer,
18640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018641 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18642 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018643 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18644 msm_routing_get_port_mixer,
18645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018646 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18647 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018648 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18649 msm_routing_get_port_mixer,
18650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018651 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18652 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018653 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18654 msm_routing_get_port_mixer,
18655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018656 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18657 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018658 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18659 msm_routing_get_port_mixer,
18660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018661 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18662 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018663 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18664 msm_routing_get_port_mixer,
18665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018666 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18667 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018668 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18669 msm_routing_get_port_mixer,
18670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018671 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18672 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018673 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18674 msm_routing_get_port_mixer,
18675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018676 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18677 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018678 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18679 msm_routing_get_port_mixer,
18680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018681 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18682 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018683 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18684 msm_routing_get_port_mixer,
18685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018686 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18687 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018688 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18689 msm_routing_get_port_mixer,
18690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018691 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18692 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018693 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18694 msm_routing_get_port_mixer,
18695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018696 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18697 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018698 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18699 msm_routing_get_port_mixer,
18700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018701 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18702 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018703 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18704 msm_routing_get_port_mixer,
18705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018706 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18707 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018708 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18709 msm_routing_get_port_mixer,
18710 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018711 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18712 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18713 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18714 msm_routing_get_port_mixer,
18715 msm_routing_put_port_mixer),
18716 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18717 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18718 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18719 msm_routing_get_port_mixer,
18720 msm_routing_put_port_mixer),
18721 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18722 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18723 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18724 msm_routing_get_port_mixer,
18725 msm_routing_put_port_mixer),
18726 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18727 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18728 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18729 msm_routing_get_port_mixer,
18730 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018731};
18732
18733static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018734 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18735 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018736 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18737 msm_routing_get_port_mixer,
18738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018739 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18740 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018741 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18742 msm_routing_get_port_mixer,
18743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018744 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18745 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018746 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18747 msm_routing_get_port_mixer,
18748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018749 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18750 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018751 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18752 msm_routing_get_port_mixer,
18753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018754 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18755 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018756 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18757 msm_routing_get_port_mixer,
18758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018759 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18760 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018761 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18762 msm_routing_get_port_mixer,
18763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018764 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18765 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018766 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18767 msm_routing_get_port_mixer,
18768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018769 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18770 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018771 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18772 msm_routing_get_port_mixer,
18773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018774 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18775 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018776 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18777 msm_routing_get_port_mixer,
18778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018779 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18780 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018781 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18782 msm_routing_get_port_mixer,
18783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018784 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18785 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018786 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18787 msm_routing_get_port_mixer,
18788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018789 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18790 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018791 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18792 msm_routing_get_port_mixer,
18793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018794 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18795 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018796 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18797 msm_routing_get_port_mixer,
18798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018799 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18800 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018801 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18802 msm_routing_get_port_mixer,
18803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018804 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18805 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018806 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18807 msm_routing_get_port_mixer,
18808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018809 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18810 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018811 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18812 msm_routing_get_port_mixer,
18813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018814 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18815 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018816 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18817 msm_routing_get_port_mixer,
18818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018819 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18820 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018821 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18822 msm_routing_get_port_mixer,
18823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018824 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18825 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018826 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18827 msm_routing_get_port_mixer,
18828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018829 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18830 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018831 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18832 msm_routing_get_port_mixer,
18833 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018834 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18835 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18836 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18837 msm_routing_get_port_mixer,
18838 msm_routing_put_port_mixer),
18839 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18840 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18841 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18842 msm_routing_get_port_mixer,
18843 msm_routing_put_port_mixer),
18844 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18845 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18846 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18847 msm_routing_get_port_mixer,
18848 msm_routing_put_port_mixer),
18849 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18850 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18851 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18852 msm_routing_get_port_mixer,
18853 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018854};
18855
18856static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018857 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18858 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018859 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18860 msm_routing_get_port_mixer,
18861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018862 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18863 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018864 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18865 msm_routing_get_port_mixer,
18866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018867 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18868 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018869 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18870 msm_routing_get_port_mixer,
18871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018872 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18873 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018874 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18875 msm_routing_get_port_mixer,
18876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018877 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18878 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018879 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18880 msm_routing_get_port_mixer,
18881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018882 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18883 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018884 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18885 msm_routing_get_port_mixer,
18886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018887 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18888 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018889 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18890 msm_routing_get_port_mixer,
18891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018892 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18893 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018894 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18895 msm_routing_get_port_mixer,
18896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018897 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18898 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018899 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18900 msm_routing_get_port_mixer,
18901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018902 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18903 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018904 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18905 msm_routing_get_port_mixer,
18906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018907 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18908 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018909 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18910 msm_routing_get_port_mixer,
18911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018912 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18913 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018914 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18915 msm_routing_get_port_mixer,
18916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018917 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18918 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018919 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18920 msm_routing_get_port_mixer,
18921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018922 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18923 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018924 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18925 msm_routing_get_port_mixer,
18926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018927 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18928 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018929 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18930 msm_routing_get_port_mixer,
18931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018932 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18933 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018934 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18935 msm_routing_get_port_mixer,
18936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018937 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18938 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018939 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18940 msm_routing_get_port_mixer,
18941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018942 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18943 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018944 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18945 msm_routing_get_port_mixer,
18946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018947 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18948 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018949 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18950 msm_routing_get_port_mixer,
18951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018952 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18953 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018954 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18955 msm_routing_get_port_mixer,
18956 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018957 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18958 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18959 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18960 msm_routing_get_port_mixer,
18961 msm_routing_put_port_mixer),
18962 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18963 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18964 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18965 msm_routing_get_port_mixer,
18966 msm_routing_put_port_mixer),
18967 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18968 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18969 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18970 msm_routing_get_port_mixer,
18971 msm_routing_put_port_mixer),
18972 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18973 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18974 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18975 msm_routing_get_port_mixer,
18976 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018977};
18978
18979static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018980 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18981 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018982 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18983 msm_routing_get_port_mixer,
18984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018985 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18986 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018987 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18988 msm_routing_get_port_mixer,
18989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018990 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18991 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018992 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18993 msm_routing_get_port_mixer,
18994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018995 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18996 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018997 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18998 msm_routing_get_port_mixer,
18999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019000 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19001 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019002 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19003 msm_routing_get_port_mixer,
19004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019005 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19006 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019007 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19008 msm_routing_get_port_mixer,
19009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019010 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19011 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019012 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19013 msm_routing_get_port_mixer,
19014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019015 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19016 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019017 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19018 msm_routing_get_port_mixer,
19019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019020 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
19021 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019022 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
19023 msm_routing_get_port_mixer,
19024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019025 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
19026 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019027 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
19028 msm_routing_get_port_mixer,
19029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019030 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
19031 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019032 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
19033 msm_routing_get_port_mixer,
19034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019035 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
19036 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019037 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
19038 msm_routing_get_port_mixer,
19039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019040 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19041 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019042 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19043 msm_routing_get_port_mixer,
19044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019045 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19046 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019047 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19048 msm_routing_get_port_mixer,
19049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019050 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19051 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019052 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19053 msm_routing_get_port_mixer,
19054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019055 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19056 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019057 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19058 msm_routing_get_port_mixer,
19059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019060 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19061 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019062 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19063 msm_routing_get_port_mixer,
19064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019065 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19066 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019067 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19068 msm_routing_get_port_mixer,
19069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019070 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19071 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019072 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19073 msm_routing_get_port_mixer,
19074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019075 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19076 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019077 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19078 msm_routing_get_port_mixer,
19079 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019080 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19081 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19082 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19083 msm_routing_get_port_mixer,
19084 msm_routing_put_port_mixer),
19085 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19086 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19087 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19088 msm_routing_get_port_mixer,
19089 msm_routing_put_port_mixer),
19090 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19091 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19092 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19093 msm_routing_get_port_mixer,
19094 msm_routing_put_port_mixer),
19095 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19096 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19097 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19098 msm_routing_get_port_mixer,
19099 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019100};
19101
Derek Chenfdcc0982018-10-02 15:14:03 -070019102static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
19103 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
19104 MSM_BACKEND_DAI_SEC_TDM_RX_7,
19105 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
19106 msm_routing_get_port_mixer,
19107 msm_routing_put_port_mixer),
19108};
19109
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019110static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019111 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19112 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019113 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19114 msm_routing_get_port_mixer,
19115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019116 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19117 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019118 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19119 msm_routing_get_port_mixer,
19120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019121 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19122 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019123 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19124 msm_routing_get_port_mixer,
19125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019126 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19127 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019128 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19129 msm_routing_get_port_mixer,
19130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019131 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19132 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019133 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19134 msm_routing_get_port_mixer,
19135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019136 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19137 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019138 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19139 msm_routing_get_port_mixer,
19140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019141 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19142 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019143 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19144 msm_routing_get_port_mixer,
19145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019146 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19147 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019148 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19149 msm_routing_get_port_mixer,
19150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019151 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19152 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019153 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19154 msm_routing_get_port_mixer,
19155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019156 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19157 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019158 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19159 msm_routing_get_port_mixer,
19160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019161 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19162 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019163 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19164 msm_routing_get_port_mixer,
19165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019166 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19167 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019168 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19169 msm_routing_get_port_mixer,
19170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019171 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19172 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019173 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19174 msm_routing_get_port_mixer,
19175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019176 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19177 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019178 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19179 msm_routing_get_port_mixer,
19180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019181 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19182 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019183 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19184 msm_routing_get_port_mixer,
19185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019186 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19187 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019188 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19189 msm_routing_get_port_mixer,
19190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019191 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19192 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019193 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19194 msm_routing_get_port_mixer,
19195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019196 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19197 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019198 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19199 msm_routing_get_port_mixer,
19200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019201 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19202 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019203 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19204 msm_routing_get_port_mixer,
19205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019206 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19207 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019208 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19209 msm_routing_get_port_mixer,
19210 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019211 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19212 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19213 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19214 msm_routing_get_port_mixer,
19215 msm_routing_put_port_mixer),
19216 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19217 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19218 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19219 msm_routing_get_port_mixer,
19220 msm_routing_put_port_mixer),
19221 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19222 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19223 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19224 msm_routing_get_port_mixer,
19225 msm_routing_put_port_mixer),
19226 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19227 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19228 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19229 msm_routing_get_port_mixer,
19230 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019231};
19232
19233static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019234 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19235 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019236 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19237 msm_routing_get_port_mixer,
19238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019239 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19240 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019241 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19242 msm_routing_get_port_mixer,
19243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019244 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19245 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019246 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19247 msm_routing_get_port_mixer,
19248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019249 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19250 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019251 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19252 msm_routing_get_port_mixer,
19253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019254 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19255 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019256 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19257 msm_routing_get_port_mixer,
19258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019259 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19260 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019261 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19262 msm_routing_get_port_mixer,
19263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019264 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19265 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019266 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19267 msm_routing_get_port_mixer,
19268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019269 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19270 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019271 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19272 msm_routing_get_port_mixer,
19273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019274 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19275 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019276 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19277 msm_routing_get_port_mixer,
19278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019279 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19280 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019281 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19282 msm_routing_get_port_mixer,
19283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019284 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19285 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019286 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19287 msm_routing_get_port_mixer,
19288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019289 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19290 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019291 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19292 msm_routing_get_port_mixer,
19293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019294 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19295 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019296 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19297 msm_routing_get_port_mixer,
19298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019299 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19300 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019301 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19302 msm_routing_get_port_mixer,
19303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019304 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19305 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019306 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19307 msm_routing_get_port_mixer,
19308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019309 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19310 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019311 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19312 msm_routing_get_port_mixer,
19313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019314 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19315 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019316 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19317 msm_routing_get_port_mixer,
19318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019319 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19320 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019321 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19322 msm_routing_get_port_mixer,
19323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019324 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19325 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019326 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19327 msm_routing_get_port_mixer,
19328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019329 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19330 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019331 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19332 msm_routing_get_port_mixer,
19333 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019334 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19335 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19336 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19337 msm_routing_get_port_mixer,
19338 msm_routing_put_port_mixer),
19339 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19340 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19341 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19342 msm_routing_get_port_mixer,
19343 msm_routing_put_port_mixer),
19344 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19345 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19346 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19347 msm_routing_get_port_mixer,
19348 msm_routing_put_port_mixer),
19349 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19350 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19351 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19352 msm_routing_get_port_mixer,
19353 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019354};
19355
19356static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019357 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19358 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019359 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19360 msm_routing_get_port_mixer,
19361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019362 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19363 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019364 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19365 msm_routing_get_port_mixer,
19366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019367 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19368 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019369 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19370 msm_routing_get_port_mixer,
19371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019372 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19373 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019374 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19375 msm_routing_get_port_mixer,
19376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019377 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19378 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019379 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19380 msm_routing_get_port_mixer,
19381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019382 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19383 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019384 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19385 msm_routing_get_port_mixer,
19386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019387 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19388 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019389 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19390 msm_routing_get_port_mixer,
19391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019392 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19393 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019394 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19395 msm_routing_get_port_mixer,
19396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019397 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19398 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019399 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19400 msm_routing_get_port_mixer,
19401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019402 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19403 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019404 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19405 msm_routing_get_port_mixer,
19406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019407 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19408 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019409 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19410 msm_routing_get_port_mixer,
19411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019412 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19413 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019414 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19415 msm_routing_get_port_mixer,
19416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019417 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19418 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019419 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19420 msm_routing_get_port_mixer,
19421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019422 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19423 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019424 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19425 msm_routing_get_port_mixer,
19426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019427 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19428 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019429 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19430 msm_routing_get_port_mixer,
19431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019432 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19433 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019434 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19435 msm_routing_get_port_mixer,
19436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019437 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19438 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019439 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19440 msm_routing_get_port_mixer,
19441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019442 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19443 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019444 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19445 msm_routing_get_port_mixer,
19446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019447 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19448 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019449 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19450 msm_routing_get_port_mixer,
19451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019452 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19453 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019454 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19455 msm_routing_get_port_mixer,
19456 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019457 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19458 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19459 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19460 msm_routing_get_port_mixer,
19461 msm_routing_put_port_mixer),
19462 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19463 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19464 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19465 msm_routing_get_port_mixer,
19466 msm_routing_put_port_mixer),
19467 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19468 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19469 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19470 msm_routing_get_port_mixer,
19471 msm_routing_put_port_mixer),
19472 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19473 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19474 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19475 msm_routing_get_port_mixer,
19476 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019477};
19478
19479static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019480 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19481 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019482 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19483 msm_routing_get_port_mixer,
19484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019485 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19486 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019487 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19488 msm_routing_get_port_mixer,
19489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019490 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19491 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019492 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19493 msm_routing_get_port_mixer,
19494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019495 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19496 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019497 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19498 msm_routing_get_port_mixer,
19499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019500 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19501 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019502 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19503 msm_routing_get_port_mixer,
19504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019505 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19506 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019507 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19508 msm_routing_get_port_mixer,
19509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019510 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19511 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019512 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19513 msm_routing_get_port_mixer,
19514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019515 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19516 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019517 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19518 msm_routing_get_port_mixer,
19519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019520 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19521 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019522 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19523 msm_routing_get_port_mixer,
19524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019525 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19526 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019527 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19528 msm_routing_get_port_mixer,
19529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019530 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19531 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019532 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19533 msm_routing_get_port_mixer,
19534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019535 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19536 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019537 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19538 msm_routing_get_port_mixer,
19539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019540 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19541 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019542 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19543 msm_routing_get_port_mixer,
19544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019545 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19546 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019547 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19548 msm_routing_get_port_mixer,
19549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019550 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19551 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019552 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19553 msm_routing_get_port_mixer,
19554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019555 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19556 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019557 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19558 msm_routing_get_port_mixer,
19559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019560 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19561 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019562 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19563 msm_routing_get_port_mixer,
19564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019565 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19566 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019567 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19568 msm_routing_get_port_mixer,
19569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019570 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19571 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019572 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19573 msm_routing_get_port_mixer,
19574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019575 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19576 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019577 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19578 msm_routing_get_port_mixer,
19579 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019580 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19581 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19582 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19583 msm_routing_get_port_mixer,
19584 msm_routing_put_port_mixer),
19585 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19586 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19587 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19588 msm_routing_get_port_mixer,
19589 msm_routing_put_port_mixer),
19590 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19591 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19592 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19593 msm_routing_get_port_mixer,
19594 msm_routing_put_port_mixer),
19595 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19596 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19597 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19598 msm_routing_get_port_mixer,
19599 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019600};
19601
19602static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019603 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19604 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019605 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19606 msm_routing_get_port_mixer,
19607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019608 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19609 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019610 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19611 msm_routing_get_port_mixer,
19612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019613 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19614 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019615 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19616 msm_routing_get_port_mixer,
19617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019618 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19619 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019620 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19621 msm_routing_get_port_mixer,
19622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019623 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19624 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019625 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19626 msm_routing_get_port_mixer,
19627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019628 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19629 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019630 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19631 msm_routing_get_port_mixer,
19632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019633 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19634 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019635 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19636 msm_routing_get_port_mixer,
19637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019638 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19639 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019640 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19641 msm_routing_get_port_mixer,
19642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019643 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19644 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019645 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19646 msm_routing_get_port_mixer,
19647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019648 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19649 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019650 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19651 msm_routing_get_port_mixer,
19652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019653 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19654 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019655 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19656 msm_routing_get_port_mixer,
19657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019658 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19659 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019660 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19661 msm_routing_get_port_mixer,
19662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019663 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19664 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019665 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19666 msm_routing_get_port_mixer,
19667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019668 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19669 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019670 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19671 msm_routing_get_port_mixer,
19672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019673 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19674 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019675 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19676 msm_routing_get_port_mixer,
19677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019678 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19679 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019680 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19681 msm_routing_get_port_mixer,
19682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019683 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19684 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019685 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19686 msm_routing_get_port_mixer,
19687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019688 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19689 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019690 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19691 msm_routing_get_port_mixer,
19692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019693 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19694 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019695 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19696 msm_routing_get_port_mixer,
19697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019698 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19699 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019700 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19701 msm_routing_get_port_mixer,
19702 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019703 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19704 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19705 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19706 msm_routing_get_port_mixer,
19707 msm_routing_put_port_mixer),
19708 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19709 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19710 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19711 msm_routing_get_port_mixer,
19712 msm_routing_put_port_mixer),
19713 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19714 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19715 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19716 msm_routing_get_port_mixer,
19717 msm_routing_put_port_mixer),
19718 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19719 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19720 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19721 msm_routing_get_port_mixer,
19722 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019723};
19724
19725static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019726 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19727 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019728 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19729 msm_routing_get_port_mixer,
19730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019731 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19732 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019733 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19734 msm_routing_get_port_mixer,
19735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019736 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19737 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019738 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19739 msm_routing_get_port_mixer,
19740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019741 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19742 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019743 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19744 msm_routing_get_port_mixer,
19745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019746 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19747 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019748 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19749 msm_routing_get_port_mixer,
19750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019751 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19752 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019753 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19754 msm_routing_get_port_mixer,
19755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019756 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19757 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019758 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19759 msm_routing_get_port_mixer,
19760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019761 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19762 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019763 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19764 msm_routing_get_port_mixer,
19765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019766 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19767 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019768 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19769 msm_routing_get_port_mixer,
19770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019771 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19772 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019773 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19774 msm_routing_get_port_mixer,
19775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019776 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19777 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019778 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19779 msm_routing_get_port_mixer,
19780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019781 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19782 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019783 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19784 msm_routing_get_port_mixer,
19785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019786 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19787 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019788 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19789 msm_routing_get_port_mixer,
19790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019791 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19792 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019793 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19794 msm_routing_get_port_mixer,
19795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019796 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19797 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019798 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19799 msm_routing_get_port_mixer,
19800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019801 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19802 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019803 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19804 msm_routing_get_port_mixer,
19805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019806 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19807 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019808 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19809 msm_routing_get_port_mixer,
19810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019811 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19812 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019813 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19814 msm_routing_get_port_mixer,
19815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019816 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19817 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019818 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19819 msm_routing_get_port_mixer,
19820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019821 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19822 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019823 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19824 msm_routing_get_port_mixer,
19825 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019826 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19827 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19828 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19829 msm_routing_get_port_mixer,
19830 msm_routing_put_port_mixer),
19831 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19832 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19833 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19834 msm_routing_get_port_mixer,
19835 msm_routing_put_port_mixer),
19836 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19837 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19838 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19839 msm_routing_get_port_mixer,
19840 msm_routing_put_port_mixer),
19841 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19842 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19843 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19844 msm_routing_get_port_mixer,
19845 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019846};
19847
19848static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019849 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19850 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019851 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19852 msm_routing_get_port_mixer,
19853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019854 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19855 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019856 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19857 msm_routing_get_port_mixer,
19858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019859 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19860 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019861 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19862 msm_routing_get_port_mixer,
19863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019864 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19865 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019866 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19867 msm_routing_get_port_mixer,
19868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019869 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19870 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019871 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19872 msm_routing_get_port_mixer,
19873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019874 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19875 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019876 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19877 msm_routing_get_port_mixer,
19878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019879 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19880 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019881 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19882 msm_routing_get_port_mixer,
19883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019884 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19885 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019886 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19887 msm_routing_get_port_mixer,
19888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019889 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19890 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019891 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19892 msm_routing_get_port_mixer,
19893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019894 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19895 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019896 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19897 msm_routing_get_port_mixer,
19898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019899 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19900 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019901 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19902 msm_routing_get_port_mixer,
19903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019904 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19905 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019906 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19907 msm_routing_get_port_mixer,
19908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019909 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19910 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019911 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19912 msm_routing_get_port_mixer,
19913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019914 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19915 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019916 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19917 msm_routing_get_port_mixer,
19918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019919 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19920 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019921 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19922 msm_routing_get_port_mixer,
19923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019924 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19925 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019926 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19927 msm_routing_get_port_mixer,
19928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019929 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19930 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019931 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19932 msm_routing_get_port_mixer,
19933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019934 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19935 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019936 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19937 msm_routing_get_port_mixer,
19938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019939 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19940 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019941 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19942 msm_routing_get_port_mixer,
19943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019944 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19945 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019946 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19947 msm_routing_get_port_mixer,
19948 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019949 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19950 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19951 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19952 msm_routing_get_port_mixer,
19953 msm_routing_put_port_mixer),
19954 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19955 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19956 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19957 msm_routing_get_port_mixer,
19958 msm_routing_put_port_mixer),
19959 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19960 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19961 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19962 msm_routing_get_port_mixer,
19963 msm_routing_put_port_mixer),
19964 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19965 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19966 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19967 msm_routing_get_port_mixer,
19968 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019969};
19970
19971static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019972 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19973 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019974 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19975 msm_routing_get_port_mixer,
19976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019977 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19978 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019979 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19980 msm_routing_get_port_mixer,
19981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019982 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19983 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019984 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19985 msm_routing_get_port_mixer,
19986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019987 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19988 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019989 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19990 msm_routing_get_port_mixer,
19991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019992 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19993 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019994 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19995 msm_routing_get_port_mixer,
19996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019997 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19998 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019999 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20000 msm_routing_get_port_mixer,
20001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020002 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20003 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020004 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20005 msm_routing_get_port_mixer,
20006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020007 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20008 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020009 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20010 msm_routing_get_port_mixer,
20011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020012 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20013 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020014 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20015 msm_routing_get_port_mixer,
20016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020017 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20018 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020019 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20020 msm_routing_get_port_mixer,
20021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020022 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20023 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020024 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20025 msm_routing_get_port_mixer,
20026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020027 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20028 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020029 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20030 msm_routing_get_port_mixer,
20031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020032 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20033 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020034 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20035 msm_routing_get_port_mixer,
20036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020037 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20038 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020039 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20040 msm_routing_get_port_mixer,
20041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020042 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20043 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020044 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20045 msm_routing_get_port_mixer,
20046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020047 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20048 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020049 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20050 msm_routing_get_port_mixer,
20051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020052 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20053 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020054 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20055 msm_routing_get_port_mixer,
20056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020057 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20058 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020059 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20060 msm_routing_get_port_mixer,
20061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020062 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20063 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020064 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20065 msm_routing_get_port_mixer,
20066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020067 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20068 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020069 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20070 msm_routing_get_port_mixer,
20071 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020072 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20073 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20074 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20075 msm_routing_get_port_mixer,
20076 msm_routing_put_port_mixer),
20077 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20078 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20079 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20080 msm_routing_get_port_mixer,
20081 msm_routing_put_port_mixer),
20082 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20083 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20084 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20085 msm_routing_get_port_mixer,
20086 msm_routing_put_port_mixer),
20087 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20088 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20089 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20090 msm_routing_get_port_mixer,
20091 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020092};
20093
Derek Chenb9048cb2019-03-07 14:54:13 -050020094static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
20095 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20096 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
20097 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20098 msm_routing_get_port_mixer,
20099 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070020100 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20101 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
20102 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20103 msm_routing_get_port_mixer,
20104 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050020105};
20106
Rohit Kumara5077932017-09-10 22:05:05 +053020107static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020108 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20109 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020110 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20111 msm_routing_get_port_mixer,
20112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020113 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20114 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020115 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20116 msm_routing_get_port_mixer,
20117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020118 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20119 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020120 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20121 msm_routing_get_port_mixer,
20122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020123 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20124 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020125 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20126 msm_routing_get_port_mixer,
20127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020128 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20129 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020130 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20131 msm_routing_get_port_mixer,
20132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020133 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20134 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020135 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20136 msm_routing_get_port_mixer,
20137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020138 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20139 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020140 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20141 msm_routing_get_port_mixer,
20142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020143 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20144 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020145 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20146 msm_routing_get_port_mixer,
20147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020148 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20149 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020150 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20151 msm_routing_get_port_mixer,
20152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020153 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20154 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020155 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20156 msm_routing_get_port_mixer,
20157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020158 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20159 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020160 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20161 msm_routing_get_port_mixer,
20162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020163 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20164 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020165 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20166 msm_routing_get_port_mixer,
20167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020168 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20169 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020170 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20171 msm_routing_get_port_mixer,
20172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020173 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20174 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020175 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20176 msm_routing_get_port_mixer,
20177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020178 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20179 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020180 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20181 msm_routing_get_port_mixer,
20182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020183 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20184 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020185 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20186 msm_routing_get_port_mixer,
20187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020188 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20189 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020190 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20191 msm_routing_get_port_mixer,
20192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020193 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20194 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020195 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20196 msm_routing_get_port_mixer,
20197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020198 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20199 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020200 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20201 msm_routing_get_port_mixer,
20202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020203 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20204 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020205 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20206 msm_routing_get_port_mixer,
20207 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020208 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20209 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20210 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20211 msm_routing_get_port_mixer,
20212 msm_routing_put_port_mixer),
20213 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20214 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20215 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20216 msm_routing_get_port_mixer,
20217 msm_routing_put_port_mixer),
20218 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20219 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20220 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20221 msm_routing_get_port_mixer,
20222 msm_routing_put_port_mixer),
20223 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20224 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20225 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20226 msm_routing_get_port_mixer,
20227 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020228};
20229
20230static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020231 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20232 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020233 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20234 msm_routing_get_port_mixer,
20235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020236 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20237 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020238 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20239 msm_routing_get_port_mixer,
20240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020241 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20242 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020243 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20244 msm_routing_get_port_mixer,
20245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020246 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20247 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020248 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20249 msm_routing_get_port_mixer,
20250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020251 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20252 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020253 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20254 msm_routing_get_port_mixer,
20255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020256 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20257 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020258 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20259 msm_routing_get_port_mixer,
20260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020261 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20262 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020263 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20264 msm_routing_get_port_mixer,
20265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020266 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20267 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020268 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20269 msm_routing_get_port_mixer,
20270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020271 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20272 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020273 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20274 msm_routing_get_port_mixer,
20275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020276 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20277 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020278 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20279 msm_routing_get_port_mixer,
20280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020281 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20282 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020283 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20284 msm_routing_get_port_mixer,
20285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020286 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20287 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020288 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20289 msm_routing_get_port_mixer,
20290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020291 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20292 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020293 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20294 msm_routing_get_port_mixer,
20295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020296 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20297 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020298 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20299 msm_routing_get_port_mixer,
20300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020301 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20302 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020303 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20304 msm_routing_get_port_mixer,
20305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020306 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20307 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020308 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20309 msm_routing_get_port_mixer,
20310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020311 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20312 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020313 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20314 msm_routing_get_port_mixer,
20315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020316 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20317 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020318 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20319 msm_routing_get_port_mixer,
20320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020321 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20322 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020323 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20324 msm_routing_get_port_mixer,
20325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020326 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20327 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020328 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20329 msm_routing_get_port_mixer,
20330 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020331 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20332 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20333 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20334 msm_routing_get_port_mixer,
20335 msm_routing_put_port_mixer),
20336 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20337 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20338 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20339 msm_routing_get_port_mixer,
20340 msm_routing_put_port_mixer),
20341 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20342 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20343 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20344 msm_routing_get_port_mixer,
20345 msm_routing_put_port_mixer),
20346 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20347 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20348 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20349 msm_routing_get_port_mixer,
20350 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020351};
20352
20353static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020354 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20355 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020356 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20357 msm_routing_get_port_mixer,
20358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020359 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20360 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020361 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20362 msm_routing_get_port_mixer,
20363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020364 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20365 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020366 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20367 msm_routing_get_port_mixer,
20368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020369 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20370 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020371 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20372 msm_routing_get_port_mixer,
20373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020374 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20375 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020376 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20377 msm_routing_get_port_mixer,
20378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020379 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20380 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020381 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20382 msm_routing_get_port_mixer,
20383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020384 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20385 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020386 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20387 msm_routing_get_port_mixer,
20388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020389 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20390 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020391 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20392 msm_routing_get_port_mixer,
20393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020394 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20395 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020396 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20397 msm_routing_get_port_mixer,
20398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020399 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20400 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020401 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20402 msm_routing_get_port_mixer,
20403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020404 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20405 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020406 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20407 msm_routing_get_port_mixer,
20408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020409 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20410 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020411 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20412 msm_routing_get_port_mixer,
20413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020414 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20415 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020416 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20417 msm_routing_get_port_mixer,
20418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020419 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20420 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020421 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20422 msm_routing_get_port_mixer,
20423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020424 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20425 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020426 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20427 msm_routing_get_port_mixer,
20428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020429 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20430 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020431 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20432 msm_routing_get_port_mixer,
20433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020434 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20435 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020436 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20437 msm_routing_get_port_mixer,
20438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020439 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20440 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020441 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20442 msm_routing_get_port_mixer,
20443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020444 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20445 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020446 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20447 msm_routing_get_port_mixer,
20448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020449 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20450 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020451 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20452 msm_routing_get_port_mixer,
20453 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020454 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20455 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20456 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20457 msm_routing_get_port_mixer,
20458 msm_routing_put_port_mixer),
20459 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20460 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20461 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20462 msm_routing_get_port_mixer,
20463 msm_routing_put_port_mixer),
20464 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20465 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20466 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20467 msm_routing_get_port_mixer,
20468 msm_routing_put_port_mixer),
20469 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20470 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20471 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20472 msm_routing_get_port_mixer,
20473 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020474};
20475
20476static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020477 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20478 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020479 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20480 msm_routing_get_port_mixer,
20481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020482 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20483 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020484 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20485 msm_routing_get_port_mixer,
20486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020487 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20488 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020489 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20490 msm_routing_get_port_mixer,
20491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020492 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20493 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020494 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20495 msm_routing_get_port_mixer,
20496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020497 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20498 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020499 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20500 msm_routing_get_port_mixer,
20501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020502 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20503 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020504 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20505 msm_routing_get_port_mixer,
20506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020507 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20508 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020509 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20510 msm_routing_get_port_mixer,
20511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020512 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20513 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020514 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20515 msm_routing_get_port_mixer,
20516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020517 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20518 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020519 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20520 msm_routing_get_port_mixer,
20521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020522 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20523 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020524 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20525 msm_routing_get_port_mixer,
20526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020527 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20528 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020529 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20530 msm_routing_get_port_mixer,
20531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020532 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20533 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020534 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20535 msm_routing_get_port_mixer,
20536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020537 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20538 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020539 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20540 msm_routing_get_port_mixer,
20541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020542 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20543 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020544 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20545 msm_routing_get_port_mixer,
20546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020547 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20548 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020549 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20550 msm_routing_get_port_mixer,
20551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020552 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20553 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020554 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20555 msm_routing_get_port_mixer,
20556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020557 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20558 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020559 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20560 msm_routing_get_port_mixer,
20561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020562 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20563 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020564 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20565 msm_routing_get_port_mixer,
20566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020567 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20568 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020569 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20570 msm_routing_get_port_mixer,
20571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020572 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20573 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020574 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20575 msm_routing_get_port_mixer,
20576 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020577 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20578 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20579 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20580 msm_routing_get_port_mixer,
20581 msm_routing_put_port_mixer),
20582 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20583 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20584 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20585 msm_routing_get_port_mixer,
20586 msm_routing_put_port_mixer),
20587 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20588 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20589 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20590 msm_routing_get_port_mixer,
20591 msm_routing_put_port_mixer),
20592 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20593 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20594 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20595 msm_routing_get_port_mixer,
20596 msm_routing_put_port_mixer),
20597};
20598
20599static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
20600 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20601 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20602 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20603 msm_routing_get_port_mixer,
20604 msm_routing_put_port_mixer),
20605 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20606 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20607 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20608 msm_routing_get_port_mixer,
20609 msm_routing_put_port_mixer),
20610 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20611 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20612 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20613 msm_routing_get_port_mixer,
20614 msm_routing_put_port_mixer),
20615 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20616 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20617 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20618 msm_routing_get_port_mixer,
20619 msm_routing_put_port_mixer),
20620 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20621 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20622 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20623 msm_routing_get_port_mixer,
20624 msm_routing_put_port_mixer),
20625 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20626 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20627 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20628 msm_routing_get_port_mixer,
20629 msm_routing_put_port_mixer),
20630 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20631 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20632 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20633 msm_routing_get_port_mixer,
20634 msm_routing_put_port_mixer),
20635 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20636 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20637 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20638 msm_routing_get_port_mixer,
20639 msm_routing_put_port_mixer),
20640 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20641 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20642 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20643 msm_routing_get_port_mixer,
20644 msm_routing_put_port_mixer),
20645 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20646 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20647 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20648 msm_routing_get_port_mixer,
20649 msm_routing_put_port_mixer),
20650 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20651 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20652 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20653 msm_routing_get_port_mixer,
20654 msm_routing_put_port_mixer),
20655 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20656 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20657 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20658 msm_routing_get_port_mixer,
20659 msm_routing_put_port_mixer),
20660 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20661 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20662 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20663 msm_routing_get_port_mixer,
20664 msm_routing_put_port_mixer),
20665 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20666 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20667 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20668 msm_routing_get_port_mixer,
20669 msm_routing_put_port_mixer),
20670 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20671 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20672 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20673 msm_routing_get_port_mixer,
20674 msm_routing_put_port_mixer),
20675 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20676 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20677 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20678 msm_routing_get_port_mixer,
20679 msm_routing_put_port_mixer),
20680 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20681 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20682 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20683 msm_routing_get_port_mixer,
20684 msm_routing_put_port_mixer),
20685 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20686 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20687 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20688 msm_routing_get_port_mixer,
20689 msm_routing_put_port_mixer),
20690 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20691 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20692 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20693 msm_routing_get_port_mixer,
20694 msm_routing_put_port_mixer),
20695 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20696 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20697 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20698 msm_routing_get_port_mixer,
20699 msm_routing_put_port_mixer),
20700 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20701 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20702 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20703 msm_routing_get_port_mixer,
20704 msm_routing_put_port_mixer),
20705 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20706 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20707 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20708 msm_routing_get_port_mixer,
20709 msm_routing_put_port_mixer),
20710 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20711 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20712 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20713 msm_routing_get_port_mixer,
20714 msm_routing_put_port_mixer),
20715 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20716 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20717 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20718 msm_routing_get_port_mixer,
20719 msm_routing_put_port_mixer),
20720};
20721
20722static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20723 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20724 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20725 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20726 msm_routing_get_port_mixer,
20727 msm_routing_put_port_mixer),
20728 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20729 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20730 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20731 msm_routing_get_port_mixer,
20732 msm_routing_put_port_mixer),
20733 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20734 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20735 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20736 msm_routing_get_port_mixer,
20737 msm_routing_put_port_mixer),
20738 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20739 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20740 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20741 msm_routing_get_port_mixer,
20742 msm_routing_put_port_mixer),
20743 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20744 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20745 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20746 msm_routing_get_port_mixer,
20747 msm_routing_put_port_mixer),
20748 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20749 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20750 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20751 msm_routing_get_port_mixer,
20752 msm_routing_put_port_mixer),
20753 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20754 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20755 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20756 msm_routing_get_port_mixer,
20757 msm_routing_put_port_mixer),
20758 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20759 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20760 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20761 msm_routing_get_port_mixer,
20762 msm_routing_put_port_mixer),
20763 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20764 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20765 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20766 msm_routing_get_port_mixer,
20767 msm_routing_put_port_mixer),
20768 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20769 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20770 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20771 msm_routing_get_port_mixer,
20772 msm_routing_put_port_mixer),
20773 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20774 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20775 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20776 msm_routing_get_port_mixer,
20777 msm_routing_put_port_mixer),
20778 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20779 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20780 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20781 msm_routing_get_port_mixer,
20782 msm_routing_put_port_mixer),
20783 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20784 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20785 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20786 msm_routing_get_port_mixer,
20787 msm_routing_put_port_mixer),
20788 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20789 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20790 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20791 msm_routing_get_port_mixer,
20792 msm_routing_put_port_mixer),
20793 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20794 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20795 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20796 msm_routing_get_port_mixer,
20797 msm_routing_put_port_mixer),
20798 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20799 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20800 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20801 msm_routing_get_port_mixer,
20802 msm_routing_put_port_mixer),
20803 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20804 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20805 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20806 msm_routing_get_port_mixer,
20807 msm_routing_put_port_mixer),
20808 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20809 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20810 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20811 msm_routing_get_port_mixer,
20812 msm_routing_put_port_mixer),
20813 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20814 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20815 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20816 msm_routing_get_port_mixer,
20817 msm_routing_put_port_mixer),
20818 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20819 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20820 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20821 msm_routing_get_port_mixer,
20822 msm_routing_put_port_mixer),
20823 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20824 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20825 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20826 msm_routing_get_port_mixer,
20827 msm_routing_put_port_mixer),
20828 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20829 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20830 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20831 msm_routing_get_port_mixer,
20832 msm_routing_put_port_mixer),
20833 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20834 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20835 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20836 msm_routing_get_port_mixer,
20837 msm_routing_put_port_mixer),
20838 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20839 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20840 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20841 msm_routing_get_port_mixer,
20842 msm_routing_put_port_mixer),
20843};
20844
20845static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20846 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20847 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20848 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20849 msm_routing_get_port_mixer,
20850 msm_routing_put_port_mixer),
20851 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20852 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20853 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20854 msm_routing_get_port_mixer,
20855 msm_routing_put_port_mixer),
20856 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20857 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20858 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20859 msm_routing_get_port_mixer,
20860 msm_routing_put_port_mixer),
20861 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20862 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20863 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20864 msm_routing_get_port_mixer,
20865 msm_routing_put_port_mixer),
20866 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20867 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20868 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20869 msm_routing_get_port_mixer,
20870 msm_routing_put_port_mixer),
20871 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20872 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20873 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20874 msm_routing_get_port_mixer,
20875 msm_routing_put_port_mixer),
20876 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20877 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20878 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20879 msm_routing_get_port_mixer,
20880 msm_routing_put_port_mixer),
20881 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20882 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20883 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20884 msm_routing_get_port_mixer,
20885 msm_routing_put_port_mixer),
20886 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20887 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20888 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20889 msm_routing_get_port_mixer,
20890 msm_routing_put_port_mixer),
20891 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20892 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20893 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20894 msm_routing_get_port_mixer,
20895 msm_routing_put_port_mixer),
20896 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20897 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20898 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20899 msm_routing_get_port_mixer,
20900 msm_routing_put_port_mixer),
20901 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20902 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20903 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20904 msm_routing_get_port_mixer,
20905 msm_routing_put_port_mixer),
20906 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20907 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20908 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20909 msm_routing_get_port_mixer,
20910 msm_routing_put_port_mixer),
20911 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20912 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20913 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20914 msm_routing_get_port_mixer,
20915 msm_routing_put_port_mixer),
20916 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20917 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20918 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20919 msm_routing_get_port_mixer,
20920 msm_routing_put_port_mixer),
20921 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20922 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20923 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20924 msm_routing_get_port_mixer,
20925 msm_routing_put_port_mixer),
20926 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20927 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20928 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20929 msm_routing_get_port_mixer,
20930 msm_routing_put_port_mixer),
20931 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20932 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20933 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20934 msm_routing_get_port_mixer,
20935 msm_routing_put_port_mixer),
20936 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20937 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20938 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20939 msm_routing_get_port_mixer,
20940 msm_routing_put_port_mixer),
20941 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20942 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20943 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20944 msm_routing_get_port_mixer,
20945 msm_routing_put_port_mixer),
20946 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20947 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20948 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20949 msm_routing_get_port_mixer,
20950 msm_routing_put_port_mixer),
20951 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20952 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20953 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20954 msm_routing_get_port_mixer,
20955 msm_routing_put_port_mixer),
20956 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20957 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20958 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20959 msm_routing_get_port_mixer,
20960 msm_routing_put_port_mixer),
20961 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20962 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20963 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20964 msm_routing_get_port_mixer,
20965 msm_routing_put_port_mixer),
20966};
20967
20968static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20969 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20970 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20971 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20972 msm_routing_get_port_mixer,
20973 msm_routing_put_port_mixer),
20974 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20975 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20976 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20977 msm_routing_get_port_mixer,
20978 msm_routing_put_port_mixer),
20979 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20980 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20981 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20982 msm_routing_get_port_mixer,
20983 msm_routing_put_port_mixer),
20984 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20985 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20986 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20987 msm_routing_get_port_mixer,
20988 msm_routing_put_port_mixer),
20989 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20990 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20991 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20992 msm_routing_get_port_mixer,
20993 msm_routing_put_port_mixer),
20994 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20995 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20996 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20997 msm_routing_get_port_mixer,
20998 msm_routing_put_port_mixer),
20999 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
21000 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21001 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
21002 msm_routing_get_port_mixer,
21003 msm_routing_put_port_mixer),
21004 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
21005 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21006 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
21007 msm_routing_get_port_mixer,
21008 msm_routing_put_port_mixer),
21009 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21010 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21011 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
21012 msm_routing_get_port_mixer,
21013 msm_routing_put_port_mixer),
21014 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
21015 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21016 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
21017 msm_routing_get_port_mixer,
21018 msm_routing_put_port_mixer),
21019 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
21020 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21021 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
21022 msm_routing_get_port_mixer,
21023 msm_routing_put_port_mixer),
21024 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
21025 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21026 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
21027 msm_routing_get_port_mixer,
21028 msm_routing_put_port_mixer),
21029 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
21030 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21031 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
21032 msm_routing_get_port_mixer,
21033 msm_routing_put_port_mixer),
21034 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
21035 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21036 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
21037 msm_routing_get_port_mixer,
21038 msm_routing_put_port_mixer),
21039 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
21040 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21041 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
21042 msm_routing_get_port_mixer,
21043 msm_routing_put_port_mixer),
21044 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
21045 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21046 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
21047 msm_routing_get_port_mixer,
21048 msm_routing_put_port_mixer),
21049 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21050 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21051 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
21052 msm_routing_get_port_mixer,
21053 msm_routing_put_port_mixer),
21054 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
21055 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21056 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
21057 msm_routing_get_port_mixer,
21058 msm_routing_put_port_mixer),
21059 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
21060 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21061 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
21062 msm_routing_get_port_mixer,
21063 msm_routing_put_port_mixer),
21064 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
21065 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21066 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
21067 msm_routing_get_port_mixer,
21068 msm_routing_put_port_mixer),
21069 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
21070 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21071 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
21072 msm_routing_get_port_mixer,
21073 msm_routing_put_port_mixer),
21074 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
21075 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21076 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
21077 msm_routing_get_port_mixer,
21078 msm_routing_put_port_mixer),
21079 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
21080 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21081 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
21082 msm_routing_get_port_mixer,
21083 msm_routing_put_port_mixer),
21084 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
21085 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21086 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
21087 msm_routing_get_port_mixer,
21088 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021089};
21090
Han Lu7b6c5882019-06-09 16:03:21 +080021091static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070021092 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
21093 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21094 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
21095 msm_routing_get_port_mixer,
21096 msm_routing_put_port_mixer),
21097 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
21098 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21099 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
21100 msm_routing_get_port_mixer,
21101 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080021102 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
21103 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21104 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
21105 msm_routing_get_port_mixer,
21106 msm_routing_put_port_mixer),
21107};
21108
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021109static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021110 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
21111 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021112 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021114 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21115 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021116 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021118 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
21119 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021120 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
21121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021122 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21123 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021124 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021126 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
21127 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053021128 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21129 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021130 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
21131 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
21132 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021134 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
21135 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021136 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021138 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
21139 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021140 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
21141 msm_routing_put_port_mixer),
21142};
21143
21144static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021145 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
21146 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021147 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021149 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
21150 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021151 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021153 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21154 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021155 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021157 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21158 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021159 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021161 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
21162 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053021163 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21164 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021165 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
21166 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
21167 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021169 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
21170 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021171 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
21172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021173 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
21174 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021175 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
21176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021177 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
21178 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021179 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
21180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021181 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
21182 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021183 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
21184 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021185};
21186
21187static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021188 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21189 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021190 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21191 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021192 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21193 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021194 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21195 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021196 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21197 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021198 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21199 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021200 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21201 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021202 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21203 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021204 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21205 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021206 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21207 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021208 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21209 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021210 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21211 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021212 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21213 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021214 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21215 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021216 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21217 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021218 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21219 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021220 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21221 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21222 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21223 msm_routing_put_listen_mixer),
21224 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21225 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21226 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21227 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021228 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21229 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21230 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21231 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021232 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21233 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21234 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21235 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021236 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21237 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21238 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21239 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021240 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21241 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21242 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21243 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021244};
21245
21246static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021247 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21248 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021249 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21250 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021251 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
21252 SND_SOC_NOPM,
21253 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021254 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21255 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021256 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21257 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021258 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21259 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021260 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21261 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021262 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21263 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021264 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21265 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021266 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21267 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021268 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21269 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021270 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21271 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021272 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21273 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021274 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21275 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021276 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21277 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021278 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21279 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021280 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21281 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21282 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21283 msm_routing_put_listen_mixer),
21284 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21285 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21286 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21287 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021288 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21289 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21290 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21291 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021292 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21293 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21294 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21295 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021296 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21297 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21298 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21299 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021300 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21301 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21302 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21303 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021304};
21305
21306static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021307 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21308 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021309 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21310 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021311 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21312 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021313 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21314 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021315 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21316 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021317 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21318 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021319 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21320 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021321 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21322 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021323 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21324 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021325 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21326 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021327 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21328 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021329 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21330 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021331 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21332 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021333 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21334 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021335 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21336 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021337 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21338 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021339 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21340 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21341 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21342 msm_routing_put_listen_mixer),
21343 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21344 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21345 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21346 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021347 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21348 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21349 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21350 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021351 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21352 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21353 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21354 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021355 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21356 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21357 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21358 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021359 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21360 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21361 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21362 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021363};
21364
21365static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021366 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21367 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021368 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21369 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021370 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21371 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021372 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21373 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021374 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21375 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021376 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21377 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021378 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21379 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021380 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21381 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021382 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21383 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021384 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21385 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021386 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21387 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021388 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21389 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021390 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21391 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021392 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21393 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021394 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21395 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021396 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21397 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021398 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21399 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21400 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21401 msm_routing_put_listen_mixer),
21402 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21403 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21404 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21405 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021406 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21407 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21408 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21409 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021410 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21411 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21412 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21413 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021414 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21415 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21416 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21417 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021418 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21419 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21420 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21421 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021422};
21423
21424static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021425 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21426 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021427 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21428 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021429 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21430 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021431 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21432 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021433 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21434 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021435 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21436 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021437 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21438 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021439 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21440 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021441 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21442 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021443 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21444 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021445 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21446 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021447 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21448 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021449 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21450 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021451 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21452 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021453 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21454 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021455 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21456 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021457 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21458 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21459 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21460 msm_routing_put_listen_mixer),
21461 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21462 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21463 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21464 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021465 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21466 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21467 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21468 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021469 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21470 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21471 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21472 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021473 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21474 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21475 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21476 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021477 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21478 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21479 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21480 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021481};
21482
21483static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021484 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21485 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021486 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21487 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021488 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21489 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021490 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21491 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021492 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21493 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021494 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21495 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021496 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21497 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021498 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21499 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021500 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21501 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021502 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21503 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021504 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21505 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021506 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21507 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021508 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21509 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021510 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21511 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021512 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21513 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021514 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21515 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021516 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21517 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21518 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21519 msm_routing_put_listen_mixer),
21520 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21521 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21522 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21523 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021524 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21525 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21526 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21527 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021528 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21529 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21530 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21531 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021532 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21533 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21534 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21535 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021536 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21537 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21538 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21539 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021540};
21541
21542static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021543 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21544 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021545 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21546 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021547 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21548 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021549 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21550 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021551 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21552 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021553 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21554 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021555 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21556 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021557 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21558 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021559 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21560 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021561 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21562 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021563 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21564 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021565 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21566 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021567 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21568 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021569 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21570 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021571 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21572 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021573 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21574 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021575 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21576 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21577 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21578 msm_routing_put_listen_mixer),
21579 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21580 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21581 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21582 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021583 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21584 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21585 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21586 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021587 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21588 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21589 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21590 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021591 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21592 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21593 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21594 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021595 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21596 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21597 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21598 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021599};
21600
21601static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021602 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21603 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021604 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21605 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021606 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21607 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021608 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21609 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021610 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21611 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021612 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21613 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021614 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21615 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021616 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21617 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021618 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21619 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021620 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21621 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021622 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21623 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021624 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21625 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021626 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21627 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021628 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21629 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021630 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21631 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021632 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21633 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021634 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21635 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21636 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21637 msm_routing_put_listen_mixer),
21638 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21639 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21640 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21641 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021642 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21643 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21644 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21645 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021646 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21647 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21648 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21649 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021650 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21651 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21652 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21653 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021654 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21655 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21656 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21657 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021658};
21659
21660static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
21661 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21662 0, 1, 0, msm_routing_get_switch_mixer,
21663 msm_routing_put_switch_mixer);
21664
21665static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
21666 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21667 0, 1, 0, msm_routing_get_switch_mixer,
21668 msm_routing_put_switch_mixer);
21669
21670static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
21671 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21672 0, 1, 0, msm_routing_get_switch_mixer,
21673 msm_routing_put_switch_mixer);
21674
21675static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
21676 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21677 0, 1, 0, msm_routing_get_switch_mixer,
21678 msm_routing_put_switch_mixer);
21679
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021680static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
21681 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21682 0, 1, 0, msm_routing_get_switch_mixer,
21683 msm_routing_put_switch_mixer);
21684
21685static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021686 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21687 0, 1, 0, msm_routing_get_switch_mixer,
21688 msm_routing_put_switch_mixer);
21689
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021690static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
21691 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21692 0, 1, 0, msm_routing_get_switch_mixer,
21693 msm_routing_put_switch_mixer);
21694
21695static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
21696 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21697 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
21698 msm_routing_put_fm_pcmrx_switch_mixer);
21699
21700static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
21701 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21702 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
21703 msm_routing_put_int0_mi2s_switch_mixer);
21704
21705static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
21706 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21707 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
21708 msm_routing_put_int4_mi2s_switch_mixer);
21709
21710static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21711 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21712 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21713 msm_routing_put_pri_mi2s_switch_mixer);
21714
21715static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21716 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21717 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21718 msm_routing_put_sec_mi2s_switch_mixer);
21719
21720static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21721 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21722 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21723 msm_routing_put_tert_mi2s_switch_mixer);
21724
21725static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21726 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21727 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21728 msm_routing_put_quat_mi2s_switch_mixer);
21729
Rohit Kumara5077932017-09-10 22:05:05 +053021730static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21731 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21732 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21733 msm_routing_put_quin_mi2s_switch_mixer);
21734
Karthikeyan Manic3700752019-03-11 18:33:53 -070021735static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21736 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21737 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21738 msm_routing_put_sen_mi2s_switch_mixer);
21739
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021740static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
21741 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21742 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21743 msm_routing_put_hfp_switch_mixer);
21744
21745static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
21746 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21747 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21748 msm_routing_put_hfp_switch_mixer);
21749
21750static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21751 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21752 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21753 msm_routing_put_hfp_switch_mixer);
21754
21755static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21756 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21757 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21758 msm_routing_put_hfp_switch_mixer);
21759
21760static const struct snd_kcontrol_new usb_switch_mixer_controls =
21761 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21762 0, 1, 0, msm_routing_get_usb_switch_mixer,
21763 msm_routing_put_usb_switch_mixer);
21764
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021765static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21766 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21767 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21768 msm_routing_a2dp_switch_mixer_put);
21769
Zhou Songcaa541d2019-02-19 18:37:47 +080021770static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21771 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21772 0, 1, 0, msm_routing_sco_switch_mixer_get,
21773 msm_routing_sco_switch_mixer_put);
21774
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021775static const struct soc_enum lsm_port_enum =
21776 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21777
21778static const char * const lsm_func_text[] = {
21779 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21780};
21781static const struct soc_enum lsm_func_enum =
21782 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21783
21784static const struct snd_kcontrol_new lsm_controls[] = {
21785 /* kcontrol of lsm_function */
21786 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21787 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21788 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21789 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21790 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21791 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21792 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21793 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21794 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21795 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21796 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21797 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21798 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21799 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21800 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21801 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21802 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21803 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021804 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21805 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021806 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21807 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Guodong Hu395166b2019-10-10 16:56:28 +080021808 SOC_ENUM_EXT(TERT_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21809 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021810 /* kcontrol of lsm_port */
21811 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21812 msm_routing_lsm_port_get,
21813 msm_routing_lsm_port_put),
21814 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21815 msm_routing_lsm_port_get,
21816 msm_routing_lsm_port_put),
21817 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21818 msm_routing_lsm_port_get,
21819 msm_routing_lsm_port_put),
21820 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21821 msm_routing_lsm_port_get,
21822 msm_routing_lsm_port_put),
21823 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21824 msm_routing_lsm_port_get,
21825 msm_routing_lsm_port_put),
21826 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21827 msm_routing_lsm_port_get,
21828 msm_routing_lsm_port_put),
21829 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21830 msm_routing_lsm_port_get,
21831 msm_routing_lsm_port_put),
21832 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21833 msm_routing_lsm_port_get,
21834 msm_routing_lsm_port_put),
21835};
21836
21837static const char * const aanc_slim_0_rx_text[] = {
21838 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21839 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21840};
21841
21842static const struct soc_enum aanc_slim_0_rx_enum =
21843 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21844 aanc_slim_0_rx_text);
21845
21846static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21847 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21848 msm_routing_slim_0_rx_aanc_mux_get,
21849 msm_routing_slim_0_rx_aanc_mux_put)
21850};
21851
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021852static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21853 struct snd_ctl_elem_value *ucontrol)
21854{
21855 ucontrol->value.integer.value[0] = aanc_level;
21856
21857 return 0;
21858}
21859
21860static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21861 struct snd_ctl_elem_value *ucontrol)
21862{
21863 int ret = 0;
21864
21865 mutex_lock(&routing_lock);
21866 aanc_level = ucontrol->value.integer.value[0];
21867 pr_debug("%s: value: %ld\n",
21868 __func__, ucontrol->value.integer.value[0]);
21869 ret = afe_set_aanc_noise_level(aanc_level);
21870 mutex_unlock(&routing_lock);
21871
21872 return ret;
21873}
21874
21875static const struct snd_kcontrol_new aanc_noise_level[] = {
21876 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21877 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21878};
21879
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021880static int msm_routing_get_stereo_to_custom_stereo_control(
21881 struct snd_kcontrol *kcontrol,
21882 struct snd_ctl_elem_value *ucontrol)
21883{
21884 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21885 return 0;
21886}
21887
21888static int msm_routing_put_stereo_to_custom_stereo_control(
21889 struct snd_kcontrol *kcontrol,
21890 struct snd_ctl_elem_value *ucontrol)
21891{
21892 int flag = 0, i = 0, rc = 0, idx = 0;
21893 int be_index = 0, port_id, topo_id;
21894 unsigned int session_id = 0;
21895 uint16_t op_FL_ip_FL_weight = 0;
21896 uint16_t op_FL_ip_FR_weight = 0;
21897 uint16_t op_FR_ip_FL_weight = 0;
21898 uint16_t op_FR_ip_FR_weight = 0;
21899
21900 flag = ucontrol->value.integer.value[0];
21901 pr_debug("%s E flag %d\n", __func__, flag);
21902
21903 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21904 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21905 __func__, is_custom_stereo_on, flag);
21906 return 0;
21907 }
21908 is_custom_stereo_on = flag ? true : false;
21909 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21910 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21911 port_id = msm_bedais[be_index].port_id;
21912 if (!msm_bedais[be_index].active)
21913 continue;
21914 if ((port_id != SLIMBUS_0_RX) &&
21915 (port_id != RT_PROXY_PORT_001_RX) &&
21916 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21917 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21918 continue;
21919
21920 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21921 MSM_FRONTEND_DAI_MM_SIZE) {
21922 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21923 LEGACY_PCM_MODE)
21924 goto skip_send_custom_stereo;
21925 session_id =
21926 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21927 if (is_custom_stereo_on) {
21928 op_FL_ip_FL_weight =
21929 Q14_GAIN_ZERO_POINT_FIVE;
21930 op_FL_ip_FR_weight =
21931 Q14_GAIN_ZERO_POINT_FIVE;
21932 op_FR_ip_FL_weight =
21933 Q14_GAIN_ZERO_POINT_FIVE;
21934 op_FR_ip_FR_weight =
21935 Q14_GAIN_ZERO_POINT_FIVE;
21936 } else {
21937 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21938 op_FL_ip_FR_weight = 0;
21939 op_FR_ip_FL_weight = 0;
21940 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21941 }
21942 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21943 unsigned long copp =
21944 session_copp_map[i]
21945 [SESSION_TYPE_RX][be_index];
21946 if (!test_bit(idx, &copp))
21947 goto skip_send_custom_stereo;
21948 topo_id = adm_get_topology_for_port_copp_idx(
21949 msm_bedais[be_index].port_id, idx);
21950 if (topo_id < 0)
21951 pr_debug("%s:Err:custom stereo topo %d",
21952 __func__, topo_id);
21953 pr_debug("idx %d\n", idx);
21954 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21955 rc = msm_ds2_dap_set_custom_stereo_onoff
21956 (msm_bedais[be_index].port_id,
21957 idx, is_custom_stereo_on);
21958 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21959 rc = dolby_dap_set_custom_stereo_onoff(
21960 msm_bedais[be_index].port_id,
21961 idx, is_custom_stereo_on);
21962 else
21963 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21964 (msm_bedais[be_index].port_id,
21965 idx, session_id,
21966 op_FL_ip_FL_weight,
21967 op_FL_ip_FR_weight,
21968 op_FR_ip_FL_weight,
21969 op_FR_ip_FR_weight);
21970 if (rc < 0)
21971skip_send_custom_stereo:
21972 pr_err("%s: err setting custom stereo\n",
21973 __func__);
21974 }
21975
21976 }
21977 }
21978 return 0;
21979}
21980
21981static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21982 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21983 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21984 msm_routing_put_stereo_to_custom_stereo_control),
21985};
21986
21987static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21988 struct snd_ctl_elem_value *ucontrol)
21989{
21990 return 0;
21991}
21992
21993static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21994 struct snd_ctl_elem_value *ucontrol)
21995{
21996 int i = 0, j;
21997 int num_app_types = ucontrol->value.integer.value[i++];
21998
21999 pr_debug("%s\n", __func__);
22000
22001 memset(app_type_cfg, 0, MAX_APP_TYPES*
22002 sizeof(struct msm_pcm_routing_app_type_data));
22003 if (num_app_types > MAX_APP_TYPES) {
22004 pr_err("%s: number of app types exceed the max supported\n",
22005 __func__);
22006 return -EINVAL;
22007 }
22008 for (j = 0; j < num_app_types; j++) {
22009 app_type_cfg[j].app_type =
22010 ucontrol->value.integer.value[i++];
22011 app_type_cfg[j].sample_rate =
22012 ucontrol->value.integer.value[i++];
22013 app_type_cfg[j].bit_width =
22014 ucontrol->value.integer.value[i++];
22015 }
22016
22017 return 0;
22018}
22019
22020static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
22021 struct snd_ctl_elem_value *ucontrol)
22022{
22023 int j, fe_id, be_id, port_type;
22024 int ret = 0;
22025 unsigned long copp;
22026 struct msm_pcm_routing_bdai_data *bedai;
22027 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
22028 SESSION_TYPE_RX;
22029 int app_type = ucontrol->value.integer.value[1];
22030 int gain = (ucontrol->value.integer.value[2] +
22031 ucontrol->value.integer.value[3])/2;
22032
22033 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
22034 MSM_AFE_PORT_TYPE_TX;
22035
22036 mutex_lock(&routing_lock);
22037 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
22038 if (is_be_dai_extproc(be_id))
22039 continue;
22040
22041 bedai = &msm_bedais[be_id];
22042 if (afe_get_port_type(bedai->port_id) != port_type)
22043 continue;
22044
22045 if (!bedai->active)
22046 continue;
22047
22048 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
22049 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
22050 continue;
22051
22052 if (app_type !=
22053 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
22054 continue;
22055
22056 copp = session_copp_map[fe_id][dir][be_id];
22057 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
22058 if (!test_bit(j, &copp))
22059 continue;
22060 ret |= adm_set_volume(bedai->port_id, j, gain);
22061 }
22062 }
22063 }
22064 mutex_unlock(&routing_lock);
22065 return ret ? -EINVAL : 0;
22066}
22067
22068static const struct snd_kcontrol_new app_type_cfg_controls[] = {
22069 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080022070 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022071 msm_routing_put_app_type_cfg_control),
22072 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
22073 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
22074};
22075
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022076static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
22077 struct snd_ctl_elem_value *ucontrol)
22078{
22079 int copp_idx, fe_id, be_id, port_type;
22080 int ret = 0;
22081 unsigned long copp;
22082 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022083 u8 *packed_params = NULL;
22084 struct param_hdr_v3 param_hdr;
22085 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
22086 sizeof(uint32_t));
22087
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022088 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
22089 SESSION_TYPE_RX;
22090 int app_type = ucontrol->value.integer.value[1];
22091 int module_id = ucontrol->value.integer.value[2];
22092 int instance_id = ucontrol->value.integer.value[3];
22093 int param_id = ucontrol->value.integer.value[4];
22094 int param_value = ucontrol->value.integer.value[5];
22095
22096 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
22097 MSM_AFE_PORT_TYPE_TX;
22098 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
22099 __func__, app_type, module_id,
22100 instance_id, param_id, param_value);
22101
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022102 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
22103 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022104 return -ENOMEM;
22105
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022106 memset(&param_hdr, 0, sizeof(param_hdr));
22107 param_hdr.module_id = module_id;
22108 param_hdr.instance_id = instance_id;
22109 param_hdr.param_id = param_id;
22110 param_hdr.param_size = sizeof(uint32_t);
22111
22112 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022113
22114 mutex_lock(&routing_lock);
22115 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
22116 if (is_be_dai_extproc(be_id))
22117 continue;
22118
22119 bedai = &msm_bedais[be_id];
22120 if (afe_get_port_type(bedai->port_id) != port_type)
22121 continue;
22122
22123 if (!bedai->active)
22124 continue;
22125
22126 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
22127 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
22128 continue;
22129
22130 if (app_type !=
22131 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
22132 continue;
22133
22134 copp = session_copp_map[fe_id][dir][be_id];
22135 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
22136 copp_idx++) {
22137 if (!test_bit(copp_idx, &copp))
22138 continue;
22139
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022140 ret = q6common_pack_pp_params(packed_params,
22141 &param_hdr,
22142 (u8 *) &param_value,
22143 &packed_param_size);
22144 if (ret) {
22145 pr_err("%s: Failed to pack params, error %d\n",
22146 __func__, ret);
22147 goto done;
22148 }
22149
22150 ret = adm_set_pp_params(bedai->port_id,
22151 copp_idx, NULL,
22152 packed_params,
22153 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022154 if (ret) {
22155 pr_err("%s: Setting param failed with err=%d\n",
22156 __func__, ret);
22157 ret = -EINVAL;
22158 goto done;
22159 }
22160 }
22161 }
22162 }
22163done:
22164 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022165 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022166 return ret;
22167}
22168
22169static const struct snd_kcontrol_new module_cfg_controls[] = {
22170 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
22171 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
22172};
22173
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022174static int msm_routing_get_lsm_app_type_cfg_control(
22175 struct snd_kcontrol *kcontrol,
22176 struct snd_ctl_elem_value *ucontrol)
22177{
Meng Wangadbca4f2018-10-29 14:30:13 +080022178 int shift = ((struct soc_multi_mixer_control *)
22179 kcontrol->private_value)->shift;
22180 int i = 0, j = 0;
22181
22182 ucontrol->value.integer.value[i] = num_app_cfg_types;
22183
22184 for (j = 0; j < num_app_cfg_types; ++j) {
22185 ucontrol->value.integer.value[++i] =
22186 lsm_app_type_cfg[j].app_type;
22187 ucontrol->value.integer.value[++i] =
22188 lsm_app_type_cfg[j].sample_rate;
22189 ucontrol->value.integer.value[++i] =
22190 lsm_app_type_cfg[j].bit_width;
22191 if (shift == 1)
22192 ucontrol->value.integer.value[++i] =
22193 lsm_app_type_cfg[j].num_out_channels;
22194 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022195 return 0;
22196}
22197
22198static int msm_routing_put_lsm_app_type_cfg_control(
22199 struct snd_kcontrol *kcontrol,
22200 struct snd_ctl_elem_value *ucontrol)
22201{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022202 int shift = ((struct soc_multi_mixer_control *)
22203 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022204 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022205
Ajit Pandey248ce562019-09-06 10:51:02 +053022206 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022207 pr_err("%s: number of app types exceed the max supported\n",
22208 __func__);
22209 return -EINVAL;
22210 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022211
Ajit Pandey248ce562019-09-06 10:51:02 +053022212 num_app_cfg_types = ucontrol->value.integer.value[i++];
22213 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
22214 sizeof(struct msm_pcm_routing_app_type_data));
22215
Meng Wangadbca4f2018-10-29 14:30:13 +080022216 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022217 lsm_app_type_cfg[j].app_type =
22218 ucontrol->value.integer.value[i++];
22219 lsm_app_type_cfg[j].sample_rate =
22220 ucontrol->value.integer.value[i++];
22221 lsm_app_type_cfg[j].bit_width =
22222 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022223 /* Shift of 1 indicates this is V2 mixer control */
22224 if (shift == 1)
22225 lsm_app_type_cfg[j].num_out_channels =
22226 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022227 }
22228
22229 return 0;
22230}
22231
22232static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
22233 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
22234 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
22235 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022236 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
22237 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
22238 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022239};
22240
22241static int msm_routing_get_use_ds1_or_ds2_control(
22242 struct snd_kcontrol *kcontrol,
22243 struct snd_ctl_elem_value *ucontrol)
22244{
22245 ucontrol->value.integer.value[0] = is_ds2_on;
22246 return 0;
22247}
22248
22249static int msm_routing_put_use_ds1_or_ds2_control(
22250 struct snd_kcontrol *kcontrol,
22251 struct snd_ctl_elem_value *ucontrol)
22252{
22253 is_ds2_on = ucontrol->value.integer.value[0];
22254 return 0;
22255}
22256
22257static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
22258 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
22259 1, 0, msm_routing_get_use_ds1_or_ds2_control,
22260 msm_routing_put_use_ds1_or_ds2_control),
22261};
22262
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053022263static int msm_routing_get_hifi_filter_control(
22264 struct snd_kcontrol *kcontrol,
22265 struct snd_ctl_elem_value *ucontrol)
22266{
22267 ucontrol->value.integer.value[0] = hifi_filter_enabled;
22268 return 0;
22269}
22270
22271static int msm_routing_put_hifi_filter_control(
22272 struct snd_kcontrol *kcontrol,
22273 struct snd_ctl_elem_value *ucontrol)
22274{
22275 hifi_filter_enabled = ucontrol->value.integer.value[0];
22276 return 0;
22277}
22278
22279static const struct snd_kcontrol_new hifi_filter_controls[] = {
22280 SOC_SINGLE_EXT("HiFi Filter", SND_SOC_NOPM, 0,
22281 1, 0, msm_routing_get_hifi_filter_control,
22282 msm_routing_put_hifi_filter_control),
22283};
22284
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022285int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
22286 struct snd_ctl_elem_value *ucontrol) {
22287 int rc = 0;
22288 int be_idx = 0;
22289 char *param_value;
22290 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022291 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
22292 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022293
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022294 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022295 if (!param_value)
22296 return -ENOMEM;
22297
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022298 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022299 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
22300 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
22301 break;
22302 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022303 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
22304 param_hdr.instance_id = INSTANCE_ID_0;
22305 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
22306 param_hdr.param_size = param_size;
22307 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
22308 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022309 if (rc) {
22310 pr_err("%s: get parameters failed:%d\n", __func__, rc);
22311 kfree(param_value);
22312 return -EINVAL;
22313 }
22314 update_param_value = (int *)param_value;
22315 ucontrol->value.integer.value[0] = update_param_value[0];
22316
22317 pr_debug("%s: FROM DSP value[0] 0x%x\n",
22318 __func__, update_param_value[0]);
22319 }
22320 kfree(param_value);
22321 return 0;
22322}
22323
22324static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
22325 struct snd_ctl_elem_value *ucontrol)
22326{
22327 voc_session_id = ucontrol->value.integer.value[0];
22328
22329 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
22330
22331 return 0;
22332}
22333
22334static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
22335 struct snd_ctl_elem_value *ucontrol)
22336{
22337 ucontrol->value.integer.value[0] = voc_session_id;
22338
22339 return 0;
22340}
22341
22342static struct snd_kcontrol_new msm_voc_session_controls[] = {
22343 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
22344 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
22345 msm_voc_session_id_put),
22346};
22347
22348static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
22349 struct snd_ctl_elem_info *uinfo)
22350{
22351 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22352 uinfo->count = sizeof(struct sound_focus_param);
22353
22354 return 0;
22355}
22356
22357static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
22358 struct snd_ctl_elem_value *ucontrol)
22359{
22360 int ret = 0;
22361 struct sound_focus_param soundFocusData;
22362
22363 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22364 sizeof(struct sound_focus_param));
22365 ret = voc_set_sound_focus(soundFocusData);
22366 if (ret) {
22367 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22368 __func__, ret);
22369
22370 ret = -EINVAL;
22371 }
22372
22373 return ret;
22374}
22375
22376static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
22377 struct snd_ctl_elem_value *ucontrol)
22378{
22379 int ret = 0;
22380 struct sound_focus_param soundFocusData;
22381
22382 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
22383
22384 ret = voc_get_sound_focus(&soundFocusData);
22385 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022386 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022387 __func__, ret);
22388
22389 ret = -EINVAL;
22390 goto done;
22391 }
22392 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22393 sizeof(struct sound_focus_param));
22394
22395done:
22396 return ret;
22397}
22398
22399static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
22400 struct snd_ctl_elem_info *uinfo)
22401{
22402 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22403 uinfo->count = sizeof(struct source_tracking_param);
22404
22405 return 0;
22406}
22407
22408static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
22409 struct snd_ctl_elem_value *ucontrol)
22410{
Meng Wang92edfde2018-04-24 12:18:37 +080022411 int ret = 0;
22412 struct source_tracking_param sourceTrackingData;
22413
22414 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
22415
22416 ret = voc_get_source_tracking(&sourceTrackingData);
22417 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022418 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080022419 __func__, ret);
22420
22421 ret = -EINVAL;
22422 goto done;
22423 }
22424 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22425 sizeof(struct source_tracking_param));
22426
22427done:
22428 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022429}
22430
22431static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
22432 int *copp_idx)
22433{
22434 int i, idx, be_idx;
22435 int ret = 0;
22436 unsigned long copp;
22437
22438 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
22439
22440 ret = q6audio_validate_port(port_id);
22441 if (ret < 0) {
22442 pr_err("%s: port validation failed id 0x%x ret %d\n",
22443 __func__, port_id, ret);
22444
22445 ret = -EINVAL;
22446 goto done;
22447 }
22448
22449 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22450 if (msm_bedais[be_idx].port_id == port_id)
22451 break;
22452 }
22453 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22454 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
22455
22456 ret = -EINVAL;
22457 goto done;
22458 }
22459
22460 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022461 MSM_FRONTEND_DAI_MAX) {
22462 if (!(is_mm_lsm_fe_id(i) &&
22463 route_check_fe_id_adm_support(i)))
22464 continue;
22465
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022466 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22467 copp = session_copp_map[i]
22468 [session_type][be_idx];
22469 if (test_bit(idx, &copp))
22470 break;
22471 }
22472 if (idx >= MAX_COPPS_PER_PORT)
22473 continue;
22474 else
22475 break;
22476 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022477 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022478 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022479
22480 ret = -EINVAL;
22481 goto done;
22482 }
22483 *copp_idx = idx;
22484 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
22485
22486done:
22487 return ret;
22488}
22489
22490static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
22491 const char *prefix, int *port_id)
22492{
22493 int ret = 0;
22494
22495 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
22496
22497 /*
22498 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
22499 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
22500 * and compare the string with the backend name to derive the port id.
22501 */
22502 if (!strcmp(kcontrol->id.name + strlen(prefix),
22503 "SLIMBUS_0")) {
22504 *port_id = SLIMBUS_0_TX;
22505 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22506 "TERT_MI2S")) {
22507 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
22508 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22509 "INT3_MI2S")) {
22510 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022511 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22512 "VA_CDC_DMA_TX_0")) {
22513 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022514 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22515 "TX_CDC_DMA_TX_3")) {
22516 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022517 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22518 "QUIN_TDM_TX_0")) {
22519 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022520 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22521 "PRIMARY_TDM")) {
22522 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022523 } else {
22524 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
22525 __func__, kcontrol->id.name);
22526
22527 ret = -EINVAL;
22528 goto done;
22529 }
22530 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
22531 __func__, kcontrol->id.name, *port_id);
22532
22533done:
22534 return ret;
22535}
22536
22537static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
22538 struct snd_ctl_elem_value *ucontrol)
22539{
22540 int ret = 0;
22541 struct sound_focus_param soundFocusData;
22542 int port_id, copp_idx;
22543
22544 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22545 "Sound Focus Audio Tx ", &port_id);
22546 if (ret != 0) {
22547 pr_err("%s: Error in deriving port id, err=%d\n",
22548 __func__, ret);
22549
22550 ret = -EINVAL;
22551 goto done;
22552 }
22553
22554 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22555 &copp_idx);
22556 if (ret) {
22557 pr_err("%s: Could not get copp idx for port_id=%d\n",
22558 __func__, port_id);
22559
22560 ret = -EINVAL;
22561 goto done;
22562 }
22563
22564 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22565 sizeof(struct sound_focus_param));
22566
22567 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
22568 if (ret) {
22569 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22570 __func__, ret);
22571
22572 ret = -EINVAL;
22573 goto done;
22574 }
22575
22576done:
22577 return ret;
22578}
22579
22580static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
22581 struct snd_ctl_elem_value *ucontrol)
22582{
22583 int ret = 0;
22584 struct sound_focus_param soundFocusData;
22585 int port_id, copp_idx;
22586
22587 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22588 "Sound Focus Audio Tx ", &port_id);
22589 if (ret) {
22590 pr_err("%s: Error in deriving port id, err=%d\n",
22591 __func__, ret);
22592
22593 ret = -EINVAL;
22594 goto done;
22595 }
22596
22597 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22598 &copp_idx);
22599 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022600 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022601 __func__, port_id);
22602
22603 ret = -EINVAL;
22604 goto done;
22605 }
22606
22607 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
22608 if (ret) {
22609 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
22610 __func__, ret);
22611
22612 ret = -EINVAL;
22613 goto done;
22614 }
22615
22616 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22617 sizeof(struct sound_focus_param));
22618
22619done:
22620 return ret;
22621}
22622
22623static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
22624 struct snd_ctl_elem_value *ucontrol)
22625{
22626 int ret = 0;
22627 struct source_tracking_param sourceTrackingData;
22628 int port_id, copp_idx;
22629
22630 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22631 "Source Tracking Audio Tx ", &port_id);
22632 if (ret) {
22633 pr_err("%s: Error in deriving port id, err=%d\n",
22634 __func__, ret);
22635
22636 ret = -EINVAL;
22637 goto done;
22638 }
22639
22640 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22641 &copp_idx);
22642 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022643 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022644 __func__, port_id);
22645
22646 ret = -EINVAL;
22647 goto done;
22648 }
22649
22650 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
22651 if (ret) {
22652 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
22653 __func__, ret);
22654
22655 ret = -EINVAL;
22656 goto done;
22657 }
22658
22659 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22660 sizeof(struct source_tracking_param));
22661
22662done:
22663 return ret;
22664}
22665
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022666static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
22667 struct snd_ctl_elem_info *uinfo)
22668{
22669 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22670 uinfo->count = sizeof(struct doa_tracking_mon_param);
22671
22672 return 0;
22673}
22674
22675static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
22676 struct snd_ctl_elem_value *ucontrol)
22677{
22678 int ret = 0;
22679 struct doa_tracking_mon_param doa_tracking_data;
22680 int port_id, copp_idx;
22681
22682 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
22683 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22684 "Doa Tracking Monitor Listen ", &port_id);
22685 if (ret) {
22686 pr_err("%s: Error in deriving port id, err=%d\n",
22687 __func__, ret);
22688 ret = -EINVAL;
22689 goto done;
22690 }
22691
22692 /*
22693 * If copp id exists for given port id, query adm to get doa data.
22694 * Else query afe for doa tracking params.
22695 * This is to support in cases where LSM directly connects to
22696 * AFE for FFNS.
22697 */
22698 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22699 &copp_idx);
22700 if (!ret)
22701 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
22702 &doa_tracking_data);
22703 else
22704 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
22705
22706 if (ret) {
22707 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
22708 __func__, ret);
22709 ret = -EINVAL;
22710 goto done;
22711 }
22712
22713 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
22714 sizeof(struct doa_tracking_mon_param));
22715done:
22716 return ret;
22717}
22718
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022719static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
22720 {
22721 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22722 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22723 .name = "Sound Focus Voice Tx SLIMBUS_0",
22724 .info = msm_sound_focus_info,
22725 .get = msm_voice_sound_focus_get,
22726 .put = msm_voice_sound_focus_put,
22727 },
22728 {
22729 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22730 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22731 .name = "Source Tracking Voice Tx SLIMBUS_0",
22732 .info = msm_source_tracking_info,
22733 .get = msm_voice_source_tracking_get,
22734 },
22735 {
22736 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22737 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22738 .name = "Sound Focus Audio Tx SLIMBUS_0",
22739 .info = msm_sound_focus_info,
22740 .get = msm_audio_sound_focus_get,
22741 .put = msm_audio_sound_focus_put,
22742 },
22743 {
22744 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22745 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22746 .name = "Source Tracking Audio Tx SLIMBUS_0",
22747 .info = msm_source_tracking_info,
22748 .get = msm_audio_source_tracking_get,
22749 },
22750 {
22751 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22752 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22753 .name = "Sound Focus Voice Tx TERT_MI2S",
22754 .info = msm_sound_focus_info,
22755 .get = msm_voice_sound_focus_get,
22756 .put = msm_voice_sound_focus_put,
22757 },
22758 {
22759 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22760 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22761 .name = "Source Tracking Voice Tx TERT_MI2S",
22762 .info = msm_source_tracking_info,
22763 .get = msm_voice_source_tracking_get,
22764 },
22765 {
22766 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22767 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22768 .name = "Sound Focus Audio Tx TERT_MI2S",
22769 .info = msm_sound_focus_info,
22770 .get = msm_audio_sound_focus_get,
22771 .put = msm_audio_sound_focus_put,
22772 },
22773 {
22774 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22775 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22776 .name = "Source Tracking Audio Tx TERT_MI2S",
22777 .info = msm_source_tracking_info,
22778 .get = msm_audio_source_tracking_get,
22779 },
22780 {
22781 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22782 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22783 .name = "Sound Focus Voice Tx INT3_MI2S",
22784 .info = msm_sound_focus_info,
22785 .get = msm_voice_sound_focus_get,
22786 .put = msm_voice_sound_focus_put,
22787 },
22788 {
22789 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22790 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22791 .name = "Source Tracking Voice Tx INT3_MI2S",
22792 .info = msm_source_tracking_info,
22793 .get = msm_voice_source_tracking_get,
22794 },
22795 {
22796 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22797 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22798 .name = "Sound Focus Audio Tx INT3_MI2S",
22799 .info = msm_sound_focus_info,
22800 .get = msm_audio_sound_focus_get,
22801 .put = msm_audio_sound_focus_put,
22802 },
22803 {
22804 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22805 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22806 .name = "Source Tracking Audio Tx INT3_MI2S",
22807 .info = msm_source_tracking_info,
22808 .get = msm_audio_source_tracking_get,
22809 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022810 {
22811 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22812 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22813 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22814 .info = msm_sound_focus_info,
22815 .get = msm_voice_sound_focus_get,
22816 .put = msm_voice_sound_focus_put,
22817 },
22818 {
22819 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22820 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22821 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22822 .info = msm_source_tracking_info,
22823 .get = msm_voice_source_tracking_get,
22824 },
22825 {
22826 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22827 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22828 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22829 .info = msm_sound_focus_info,
22830 .get = msm_audio_sound_focus_get,
22831 .put = msm_audio_sound_focus_put,
22832 },
22833 {
22834 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22835 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22836 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22837 .info = msm_source_tracking_info,
22838 .get = msm_audio_source_tracking_get,
22839 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022840 {
22841 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22842 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22843 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22844 .info = msm_sound_focus_info,
22845 .get = msm_voice_sound_focus_get,
22846 .put = msm_voice_sound_focus_put,
22847 },
22848 {
22849 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22850 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22851 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22852 .info = msm_source_tracking_info,
22853 .get = msm_voice_source_tracking_get,
22854 },
22855 {
22856 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22857 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22858 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22859 .info = msm_sound_focus_info,
22860 .get = msm_audio_sound_focus_get,
22861 .put = msm_audio_sound_focus_put,
22862 },
22863 {
22864 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22865 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22866 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22867 .info = msm_source_tracking_info,
22868 .get = msm_audio_source_tracking_get,
22869 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022870 {
22871 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22872 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22873 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22874 .info = msm_sound_focus_info,
22875 .get = msm_voice_sound_focus_get,
22876 .put = msm_voice_sound_focus_put,
22877 },
22878 {
22879 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22880 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22881 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22882 .info = msm_source_tracking_info,
22883 .get = msm_voice_source_tracking_get,
22884 },
22885 {
22886 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22887 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22888 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22889 .info = msm_sound_focus_info,
22890 .get = msm_audio_sound_focus_get,
22891 .put = msm_audio_sound_focus_put,
22892 },
22893 {
22894 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22895 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22896 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22897 .info = msm_source_tracking_info,
22898 .get = msm_audio_source_tracking_get,
22899 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022900 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022901 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22902 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22903 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22904 .info = msm_sound_focus_info,
22905 .get = msm_audio_sound_focus_get,
22906 .put = msm_audio_sound_focus_put,
22907 },
22908 {
22909 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22910 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22911 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22912 .info = msm_source_tracking_info,
22913 .get = msm_audio_source_tracking_get,
22914 },
22915 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022916 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22917 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22918 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22919 .info = msm_doa_tracking_mon_info,
22920 .get = msm_doa_tracking_mon_get,
22921 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022922};
22923
22924static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22925 struct snd_ctl_elem_value *ucontrol)
22926{
22927 int ret = 0;
22928 int item;
22929 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22930
22931 pr_debug("%s item is %d\n", __func__,
22932 ucontrol->value.enumerated.item[0]);
22933 mutex_lock(&routing_lock);
22934 item = ucontrol->value.enumerated.item[0];
22935 if (item < e->items) {
22936 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22937 __func__, e->shift_l, e->values[item]);
22938 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22939 e->values[item] < MSM_BACKEND_DAI_MAX)
22940 /* Enable feedback TX path */
22941 ret = afe_spk_prot_feed_back_cfg(
22942 msm_bedais[e->values[item]].port_id,
22943 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22944 else {
22945 pr_debug("%s values are out of range item %d\n",
22946 __func__, e->values[item]);
22947 /* Disable feedback TX path */
22948 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22949 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22950 else
22951 ret = -EINVAL;
22952 }
22953 } else {
22954 pr_err("%s item value is out of range item\n", __func__);
22955 ret = -EINVAL;
22956 }
22957 mutex_unlock(&routing_lock);
22958 return ret;
22959}
22960
22961static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22962 struct snd_ctl_elem_value *ucontrol)
22963{
22964 int ret = 0;
22965 int item;
22966 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22967
22968 pr_debug("%s item is %d\n", __func__,
22969 ucontrol->value.enumerated.item[0]);
22970 mutex_lock(&routing_lock);
22971 item = ucontrol->value.enumerated.item[0];
22972 if (item < e->items) {
22973 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22974 __func__, e->shift_l, e->values[item]);
22975 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22976 e->values[item] < MSM_BACKEND_DAI_MAX)
22977 /* Enable feedback TX path */
22978 ret = afe_spk_prot_feed_back_cfg(
22979 msm_bedais[e->values[item]].port_id,
22980 msm_bedais[e->shift_l].port_id,
22981 1, 1, 1);
22982 else {
22983 pr_debug("%s values are out of range item %d\n",
22984 __func__, e->values[item]);
22985 /* Disable feedback TX path */
22986 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22987 ret = afe_spk_prot_feed_back_cfg(0,
22988 0, 0, 0, 0);
22989 else
22990 ret = -EINVAL;
22991 }
22992 } else {
22993 pr_err("%s item value is out of range item\n", __func__);
22994 ret = -EINVAL;
22995 }
22996 mutex_unlock(&routing_lock);
22997 return ret;
22998}
22999
23000static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
23001 struct snd_ctl_elem_value *ucontrol)
23002{
23003 pr_debug("%s\n", __func__);
23004 return 0;
23005}
23006
23007static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
23008 struct snd_ctl_elem_value *ucontrol)
23009{
23010 pr_debug("%s\n", __func__);
23011 ucontrol->value.enumerated.item[0] = 0;
23012 return 0;
23013}
23014
23015static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
23016 "ZERO", "SLIM4_TX"
23017};
23018
23019static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
23020 "ZERO", "SLIM4_TX"
23021};
23022
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023023static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
23024 "ZERO", "WSA_CDC_DMA_TX_0"
23025};
23026
23027static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
23028 "ZERO", "WSA_CDC_DMA_TX_0"
23029};
23030
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023031static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
23032 "ZERO", "SENARY_TX"
23033};
23034
23035static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
23036 "ZERO", "INT5_MI2S_TX"
23037};
23038
23039static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
23040 "ZERO", "INT5_MI2S_TX"
23041};
23042
Josh Kirschea69fed2018-12-11 16:15:08 -080023043static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023044 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
23045};
23046
Josh Kirschea69fed2018-12-11 16:15:08 -080023047static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023048 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
23049};
23050
Josh Kirschea69fed2018-12-11 16:15:08 -080023051static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023052 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
23053};
23054
Josh Kirschea69fed2018-12-11 16:15:08 -080023055static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023056 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
23057};
23058
23059
Josh Kirschea69fed2018-12-11 16:15:08 -080023060static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023061 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
23062};
23063
Josh Kirschea69fed2018-12-11 16:15:08 -080023064static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023065 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
23066};
23067
Josh Kirschea69fed2018-12-11 16:15:08 -080023068static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023069 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
23070};
23071
23072static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
23073 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
23074 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
23075 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
23076
23077static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
23078 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
23079 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
23080 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
23081
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023082static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
23083 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
23084 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
23085 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
23086
23087static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
23088 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
23089 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
23090 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
23091
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023092static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
23093 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
23094 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
23095 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
23096
23097static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
23098 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
23099 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
23100 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
23101 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
23102
23103static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
23104 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
23105 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
23106 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
23107 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
23108
23109static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
23110 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
23111 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
23112 spkr_prot_put_vi_lch_port);
23113
23114static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
23115 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
23116 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
23117 spkr_prot_put_vi_rch_port);
23118
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023119static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
23120 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
23121 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
23122 spkr_prot_put_vi_lch_port);
23123
23124static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
23125 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
23126 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
23127 spkr_prot_put_vi_rch_port);
23128
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023129static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
23130 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
23131 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
23132 spkr_prot_put_vi_lch_port);
23133
23134static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
23135 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
23136 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
23137 spkr_prot_put_vi_lch_port);
23138
23139static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
23140 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
23141 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
23142 spkr_prot_put_vi_rch_port);
23143
23144static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
23145 /* Frontend AIF */
23146 /* Widget name equals to Front-End DAI name<Need confirmation>,
23147 * Stream name must contains substring of front-end dai name
23148 */
23149 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
23150 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
23151 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
23152 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
23153 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
23154 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
23155 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
23156 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
23157 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
23158 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
23159 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
23160 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
23161 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
23162 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
23163 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
23164 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
23165 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023166 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070023167 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053023168 SND_SOC_DAPM_AIF_IN("MM_DL23", "MultiMedia23 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053023169 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023170 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
23171 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
23172 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
23173 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
23174 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
23175 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
23176 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
23177 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
23178 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023179 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023180 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023181 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
23182 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
23183 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
23184 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023185 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070023186 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053023187 SND_SOC_DAPM_AIF_OUT("MM_UL23", "MultiMedia23 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053023188 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080023189 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
23190 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053023191 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023192 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
23193 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
23194 "VoiceMMode1 Playback", 0, 0, 0, 0),
23195 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
23196 "VoiceMMode1 Capture", 0, 0, 0, 0),
23197 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
23198 "VoiceMMode2 Playback", 0, 0, 0, 0),
23199 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
23200 "VoiceMMode2 Capture", 0, 0, 0, 0),
23201 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
23202 0, 0, 0, 0),
23203 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
23204 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023205 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
23206 0, 0, 0, 0),
23207 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
23208 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023209 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
23210 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023211 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
23212 0, 0, 0, 0),
23213 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
23214 0, 0, 0, 0),
23215 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
23216 0, 0, 0, 0),
23217 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
23218 0, 0, 0, 0),
23219 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
23220 0, 0, 0, 0),
23221 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
23222 0, 0, 0, 0),
23223 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
23224 0, 0, 0, 0),
23225 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
23226 0, 0, 0, 0),
23227 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
23228 0, 0, 0, 0),
23229 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
23230 0, 0, 0, 0),
23231 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
23232 0, 0, 0, 0),
23233 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
23234 0, 0, 0, 0),
23235 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
23236 0, 0, 0, 0),
23237 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
23238 0, 0, 0, 0),
23239 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
23240 0, 0, 0, 0),
23241 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
23242 0, 0, 0, 0),
23243 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
23244 0, 0, 0, 0),
23245 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
23246 0, 0, 0, 0),
23247 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
23248 0, 0, 0, 0),
23249 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
23250 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
23251 0, 0, 0, 0),
23252 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
23253 "INT0 MI2S_RX Hostless Playback",
23254 0, 0, 0, 0),
23255 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
23256 "INT4 MI2S_RX Hostless Playback",
23257 0, 0, 0, 0),
23258 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
23259 "Primary MI2S_RX Hostless Playback",
23260 0, 0, 0, 0),
23261 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
23262 "Secondary MI2S_RX Hostless Playback",
23263 0, 0, 0, 0),
23264 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
23265 "Tertiary MI2S_RX Hostless Playback",
23266 0, 0, 0, 0),
23267 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
23268 "Quaternary MI2S_RX Hostless Playback",
23269 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023270 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
23271 "Quinary MI2S_RX Hostless Playback",
23272 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023273 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
23274 "Senary MI2S_RX Hostless Playback",
23275 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023276
23277 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
23278 0, 0, 0, 0),
23279 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
23280 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023281 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
23282 0, 0, 0, 0),
23283 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
23284 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023285 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
23286 0, 0, 0, 0),
23287 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
23288 "INT3 MI2S_TX Hostless Capture",
23289 0, 0, 0, 0),
23290 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
23291 "Tertiary MI2S_TX Hostless Capture",
23292 0, 0, 0, 0),
23293 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
23294 "Secondary MI2S_TX Hostless Capture",
23295 0, 0, 0, 0),
23296 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
23297 "Primary MI2S_TX Hostless Capture",
23298 0, 0, 0, 0),
23299 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
23300 0, 0, 0, 0),
23301 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
23302 0, 0, 0, 0),
23303 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
23304 "Quaternary MI2S_TX Hostless Capture",
23305 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023306 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
23307 "Quinary MI2S_TX Hostless Capture",
23308 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023309 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
23310 "Senary MI2S_TX Hostless Capture",
23311 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023312
23313 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
23314 "Primary TDM0 Hostless Playback",
23315 0, 0, 0, 0),
23316 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
23317 "Primary TDM0 Hostless Capture",
23318 0, 0, 0, 0),
23319 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
23320 "Primary TDM1 Hostless Playback",
23321 0, 0, 0, 0),
23322 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
23323 "Primary TDM1 Hostless Capture",
23324 0, 0, 0, 0),
23325 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
23326 "Primary TDM2 Hostless Playback",
23327 0, 0, 0, 0),
23328 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
23329 "Primary TDM2 Hostless Capture",
23330 0, 0, 0, 0),
23331 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
23332 "Primary TDM3 Hostless Playback",
23333 0, 0, 0, 0),
23334 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
23335 "Primary TDM3 Hostless Capture",
23336 0, 0, 0, 0),
23337 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
23338 "Primary TDM4 Hostless Playback",
23339 0, 0, 0, 0),
23340 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
23341 "Primary TDM4 Hostless Capture",
23342 0, 0, 0, 0),
23343 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
23344 "Primary TDM5 Hostless Playback",
23345 0, 0, 0, 0),
23346 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
23347 "Primary TDM5 Hostless Capture",
23348 0, 0, 0, 0),
23349 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
23350 "Primary TDM6 Hostless Playback",
23351 0, 0, 0, 0),
23352 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
23353 "Primary TDM6 Hostless Capture",
23354 0, 0, 0, 0),
23355 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
23356 "Primary TDM7 Hostless Playback",
23357 0, 0, 0, 0),
23358 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
23359 "Primary TDM7 Hostless Capture",
23360 0, 0, 0, 0),
23361 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
23362 "Secondary TDM0 Hostless Playback",
23363 0, 0, 0, 0),
23364 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
23365 "Secondary TDM0 Hostless Capture",
23366 0, 0, 0, 0),
23367 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
23368 "Secondary TDM1 Hostless Playback",
23369 0, 0, 0, 0),
23370 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
23371 "Secondary TDM1 Hostless Capture",
23372 0, 0, 0, 0),
23373 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
23374 "Secondary TDM2 Hostless Playback",
23375 0, 0, 0, 0),
23376 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
23377 "Secondary TDM2 Hostless Capture",
23378 0, 0, 0, 0),
23379 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
23380 "Secondary TDM3 Hostless Playback",
23381 0, 0, 0, 0),
23382 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
23383 "Secondary TDM3 Hostless Capture",
23384 0, 0, 0, 0),
23385 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
23386 "Secondary TDM4 Hostless Playback",
23387 0, 0, 0, 0),
23388 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
23389 "Secondary TDM4 Hostless Capture",
23390 0, 0, 0, 0),
23391 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
23392 "Secondary TDM5 Hostless Playback",
23393 0, 0, 0, 0),
23394 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
23395 "Secondary TDM5 Hostless Capture",
23396 0, 0, 0, 0),
23397 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
23398 "Secondary TDM6 Hostless Playback",
23399 0, 0, 0, 0),
23400 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
23401 "Secondary TDM6 Hostless Capture",
23402 0, 0, 0, 0),
23403 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
23404 "Secondary TDM7 Hostless Playback",
23405 0, 0, 0, 0),
23406 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
23407 "Secondary TDM7 Hostless Capture",
23408 0, 0, 0, 0),
23409 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
23410 "Tertiary TDM0 Hostless Playback",
23411 0, 0, 0, 0),
23412 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
23413 "Tertiary TDM0 Hostless Capture",
23414 0, 0, 0, 0),
23415 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
23416 "Tertiary TDM1 Hostless Playback",
23417 0, 0, 0, 0),
23418 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
23419 "Tertiary TDM1 Hostless Capture",
23420 0, 0, 0, 0),
23421 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
23422 "Tertiary TDM2 Hostless Playback",
23423 0, 0, 0, 0),
23424 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
23425 "Tertiary TDM2 Hostless Capture",
23426 0, 0, 0, 0),
23427 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
23428 "Tertiary TDM3 Hostless Playback",
23429 0, 0, 0, 0),
23430 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
23431 "Tertiary TDM3 Hostless Capture",
23432 0, 0, 0, 0),
23433 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
23434 "Tertiary TDM4 Hostless Playback",
23435 0, 0, 0, 0),
23436 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
23437 "Tertiary TDM4 Hostless Capture",
23438 0, 0, 0, 0),
23439 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
23440 "Tertiary TDM5 Hostless Playback",
23441 0, 0, 0, 0),
23442 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
23443 "Tertiary TDM5 Hostless Capture",
23444 0, 0, 0, 0),
23445 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
23446 "Tertiary TDM6 Hostless Playback",
23447 0, 0, 0, 0),
23448 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
23449 "Tertiary TDM6 Hostless Capture",
23450 0, 0, 0, 0),
23451 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
23452 "Tertiary TDM7 Hostless Playback",
23453 0, 0, 0, 0),
23454 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
23455 "Tertiary TDM7 Hostless Capture",
23456 0, 0, 0, 0),
23457 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
23458 "Quaternary TDM0 Hostless Playback",
23459 0, 0, 0, 0),
23460 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
23461 "Quaternary TDM0 Hostless Capture",
23462 0, 0, 0, 0),
23463 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
23464 "Quaternary TDM1 Hostless Playback",
23465 0, 0, 0, 0),
23466 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
23467 "Quaternary TDM1 Hostless Capture",
23468 0, 0, 0, 0),
23469 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
23470 "Quaternary TDM2 Hostless Playback",
23471 0, 0, 0, 0),
23472 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
23473 "Quaternary TDM2 Hostless Capture",
23474 0, 0, 0, 0),
23475 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
23476 "Quaternary TDM3 Hostless Playback",
23477 0, 0, 0, 0),
23478 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
23479 "Quaternary TDM3 Hostless Capture",
23480 0, 0, 0, 0),
23481 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
23482 "Quaternary TDM4 Hostless Playback",
23483 0, 0, 0, 0),
23484 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
23485 "Quaternary TDM4 Hostless Capture",
23486 0, 0, 0, 0),
23487 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
23488 "Quaternary TDM5 Hostless Playback",
23489 0, 0, 0, 0),
23490 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
23491 "Quaternary TDM5 Hostless Capture",
23492 0, 0, 0, 0),
23493 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
23494 "Quaternary TDM6 Hostless Playback",
23495 0, 0, 0, 0),
23496 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
23497 "Quaternary TDM6 Hostless Capture",
23498 0, 0, 0, 0),
23499 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
23500 "Quaternary TDM7 Hostless Playback",
23501 0, 0, 0, 0),
23502 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
23503 "Quaternary TDM7 Hostless Capture",
23504 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023505 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
23506 "Quinary TDM0 Hostless Playback",
23507 0, 0, 0, 0),
23508 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
23509 "Quinary TDM0 Hostless Capture",
23510 0, 0, 0, 0),
23511 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
23512 "Quinary TDM1 Hostless Playback",
23513 0, 0, 0, 0),
23514 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
23515 "Quinary TDM1 Hostless Capture",
23516 0, 0, 0, 0),
23517 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
23518 "Quinary TDM2 Hostless Playback",
23519 0, 0, 0, 0),
23520 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
23521 "Quinary TDM2 Hostless Capture",
23522 0, 0, 0, 0),
23523 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
23524 "Quinary TDM3 Hostless Playback",
23525 0, 0, 0, 0),
23526 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
23527 "Quinary TDM3 Hostless Capture",
23528 0, 0, 0, 0),
23529 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
23530 "Quinary TDM4 Hostless Playback",
23531 0, 0, 0, 0),
23532 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
23533 "Quinary TDM4 Hostless Capture",
23534 0, 0, 0, 0),
23535 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
23536 "Quinary TDM5 Hostless Playback",
23537 0, 0, 0, 0),
23538 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
23539 "Quinary TDM5 Hostless Capture",
23540 0, 0, 0, 0),
23541 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
23542 "Quinary TDM6 Hostless Playback",
23543 0, 0, 0, 0),
23544 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
23545 "Quinary TDM6 Hostless Capture",
23546 0, 0, 0, 0),
23547 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
23548 "Quinary TDM7 Hostless Playback",
23549 0, 0, 0, 0),
23550 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
23551 "Quinary TDM7 Hostless Capture",
23552 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023553 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
23554 "Senary TDM0 Hostless Playback",
23555 0, 0, 0, 0),
23556 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
23557 "Senary TDM0 Hostless Capture",
23558 0, 0, 0, 0),
23559 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
23560 "Senary TDM1 Hostless Playback",
23561 0, 0, 0, 0),
23562 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
23563 "Senary TDM1 Hostless Capture",
23564 0, 0, 0, 0),
23565 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
23566 "Senary TDM2 Hostless Playback",
23567 0, 0, 0, 0),
23568 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
23569 "Senary TDM2 Hostless Capture",
23570 0, 0, 0, 0),
23571 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
23572 "Senary TDM3 Hostless Playback",
23573 0, 0, 0, 0),
23574 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
23575 "Senary TDM3 Hostless Capture",
23576 0, 0, 0, 0),
23577 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
23578 "Senary TDM4 Hostless Playback",
23579 0, 0, 0, 0),
23580 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
23581 "Senary TDM4 Hostless Capture",
23582 0, 0, 0, 0),
23583 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
23584 "Senary TDM5 Hostless Playback",
23585 0, 0, 0, 0),
23586 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
23587 "Senary TDM5 Hostless Capture",
23588 0, 0, 0, 0),
23589 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
23590 "Senary TDM6 Hostless Playback",
23591 0, 0, 0, 0),
23592 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
23593 "Senary TDM6 Hostless Capture",
23594 0, 0, 0, 0),
23595 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
23596 "Senary TDM7 Hostless Playback",
23597 0, 0, 0, 0),
23598 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
23599 "Senary TDM7 Hostless Capture",
23600 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023601
23602 /* LSM */
23603 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
23604 0, 0, 0, 0),
23605 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
23606 0, 0, 0, 0),
23607 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
23608 0, 0, 0, 0),
23609 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
23610 0, 0, 0, 0),
23611 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
23612 0, 0, 0, 0),
23613 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
23614 0, 0, 0, 0),
23615 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
23616 0, 0, 0, 0),
23617 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
23618 0, 0, 0, 0),
23619 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
23620 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
23621 /* Backend AIF */
23622 /* Stream name equals to backend dai link stream name */
23623 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
23624 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
23625 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020023626 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
23627 0, 0, 0, 0),
23628 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
23629 0, 0, 0, 0),
23630 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
23631 0, 0, 0, 0),
23632 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
23633 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023634 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
23635 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
23636 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
23637 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
23638 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
23639 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023640 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
23641 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023642 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
23643 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
23644 0, 0, 0, 0),
23645 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
23646 0, 0, 0, 0),
23647 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
23648 0, 0, 0, 0),
23649 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
23650 "Secondary MI2S Playback SD1",
23651 0, 0, 0, 0),
23652 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
23653 0, 0, 0, 0),
23654 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
23655 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023656 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
23657 0, 0, 0, 0),
23658 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
23659 0, 0, 0, 0),
23660 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
23661 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023662 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
23663 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023664 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
23665 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023666 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
23667 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023668 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
23669 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023670 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
23671 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
23672 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
23673 0, 0, 0, 0),
23674 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
23675 0, 0, 0, 0),
23676 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
23677 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023678 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
23679 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023680 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
23681 0, 0, 0, 0),
23682 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
23683 0, 0, 0, 0),
23684 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
23685 0, 0, 0, 0),
23686 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
23687 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
23688 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
23689 0, 0, 0, 0),
23690 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
23691 0, 0, 0, 0),
23692 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
23693 0, 0, 0, 0),
23694 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
23695 0, 0, 0, 0),
23696 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
23697 0, 0, 0, 0),
23698 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
23699 0, 0, 0, 0),
23700 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
23701 0, 0, 0, 0),
23702 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
23703 0, 0, 0, 0),
23704 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
23705 0, 0, 0, 0),
23706 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
23707 0, 0, 0, 0),
23708 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
23709 0, 0, 0, 0),
23710 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
23711 0, 0, 0, 0),
23712 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
23713 0, 0, 0, 0),
23714 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
23715 0, 0, 0, 0),
23716 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
23717 0, 0, 0, 0),
23718 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
23719 0, 0, 0, 0),
23720 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
23721 0, 0, 0, 0),
23722 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
23723 0, 0, 0, 0),
23724 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
23725 0, 0, 0, 0),
23726 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
23727 0, 0, 0, 0),
23728 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
23729 0, 0, 0, 0),
23730 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
23731 0, 0, 0, 0),
23732 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
23733 0, 0, 0, 0),
23734 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23735 0, 0, 0, 0),
23736 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23737 0, 0, 0, 0),
23738 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23739 0, 0, 0, 0),
23740 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23741 0, 0, 0, 0),
23742 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23743 0, 0, 0, 0),
23744 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23745 0, 0, 0, 0),
23746 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23747 0, 0, 0, 0),
23748 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23749 0, 0, 0, 0),
23750 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23751 0, 0, 0, 0),
23752 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23753 0, 0, 0, 0),
23754 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23755 0, 0, 0, 0),
23756 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23757 0, 0, 0, 0),
23758 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23759 0, 0, 0, 0),
23760 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23761 0, 0, 0, 0),
23762 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23763 0, 0, 0, 0),
23764 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23765 0, 0, 0, 0),
23766 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23767 0, 0, 0, 0),
23768 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23769 0, 0, 0, 0),
23770 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23771 0, 0, 0, 0),
23772 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23773 0, 0, 0, 0),
23774 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23775 0, 0, 0, 0),
23776 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23777 0, 0, 0, 0),
23778 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23779 0, 0, 0, 0),
23780 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23781 0, 0, 0, 0),
23782 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23783 0, 0, 0, 0),
23784 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23785 0, 0, 0, 0),
23786 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23787 0, 0, 0, 0),
23788 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23789 0, 0, 0, 0),
23790 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23791 0, 0, 0, 0),
23792 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23793 0, 0, 0, 0),
23794 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23795 0, 0, 0, 0),
23796 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23797 0, 0, 0, 0),
23798 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23799 0, 0, 0, 0),
23800 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23801 0, 0, 0, 0),
23802 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23803 0, 0, 0, 0),
23804 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23805 0, 0, 0, 0),
23806 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23807 0, 0, 0, 0),
23808 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23809 0, 0, 0, 0),
23810 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23811 0, 0, 0, 0),
23812 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23813 0, 0, 0, 0),
23814 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23815 0, 0, 0, 0),
23816 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23817 0, 0, 0, 0),
23818 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23819 0, 0, 0, 0),
23820 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23821 0, 0, 0, 0),
23822 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23823 0, 0, 0, 0),
23824 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23825 0, 0, 0, 0),
23826 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23827 0, 0, 0, 0),
23828 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23829 0, 0, 0, 0),
23830 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23831 0, 0, 0, 0),
23832 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23833 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023834 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23835 0, 0, 0, 0),
23836 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23837 0, 0, 0, 0),
23838 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23839 0, 0, 0, 0),
23840 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23841 0, 0, 0, 0),
23842 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23843 0, 0, 0, 0),
23844 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23845 0, 0, 0, 0),
23846 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23847 0, 0, 0, 0),
23848 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23849 0, 0, 0, 0),
23850 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23851 0, 0, 0, 0),
23852 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23853 0, 0, 0, 0),
23854 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23855 0, 0, 0, 0),
23856 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23857 0, 0, 0, 0),
23858 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23859 0, 0, 0, 0),
23860 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23861 0, 0, 0, 0),
23862 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23863 0, 0, 0, 0),
23864 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23865 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023866 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23867 0, 0, 0, 0),
23868 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23869 0, 0, 0, 0),
23870 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23871 0, 0, 0, 0),
23872 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23873 0, 0, 0, 0),
23874 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23875 0, 0, 0, 0),
23876 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23877 0, 0, 0, 0),
23878 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23879 0, 0, 0, 0),
23880 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23881 0, 0, 0, 0),
23882 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23883 0, 0, 0, 0),
23884 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23885 0, 0, 0, 0),
23886 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23887 0, 0, 0, 0),
23888 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23889 0, 0, 0, 0),
23890 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23891 0, 0, 0, 0),
23892 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23893 0, 0, 0, 0),
23894 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23895 0, 0, 0, 0),
23896 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23897 0, 0, 0, 0),
Ralf Herz29e07132019-07-26 15:15:21 +020023898 SND_SOC_DAPM_AIF_OUT("PRI_META_MI2S_RX", "Primary META MI2S Playback",
23899 0, 0, 0, 0),
23900 SND_SOC_DAPM_AIF_OUT("SEC_META_MI2S_RX", "Secondary META MI2S Playback",
23901 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023902 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23903 0, 0, 0, 0),
23904 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23905 0, 0, 0, 0),
23906 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23907 0, 0, 0, 0),
23908 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23909 0, 0, 0, 0),
23910 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23911 0, 0, 0, 0),
23912 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23913 0, 0, 0, 0),
23914 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23915 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023916 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23917 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023918 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23919 0, 0, 0, 0),
23920 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23921 0, 0, 0, 0),
23922 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23923 0, 0, 0, 0),
23924 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23925 0, 0, 0, 0),
23926 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23927 0, 0, 0, 0),
23928 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23929 0, 0, 0, 0),
23930 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23931 0, 0, 0, 0),
23932 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23933 0, 0, 0, 0),
23934 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23935 0, 0, 0, 0),
23936 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23937 0, 0, 0, 0),
23938 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23939 0, 0, 0, 0),
23940 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23941 0, 0, 0, 0),
23942 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23943 0, 0, 0, 0),
23944 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23945 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023946 /* incall */
23947 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23948 0, 0, 0, 0),
23949 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23950 0, 0, 0, 0),
23951 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23952 0, 0, 0, 0),
23953 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23954 0, 0, 0, 0),
23955 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23956 0, 0, 0, 0),
23957 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23958 0, 0, 0, 0),
23959 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23960 0, 0, 0, 0),
23961 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23962 0, 0, 0, 0),
23963 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23964
23965 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23966 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23967 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23968 0, 0, 0, 0),
23969 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23970 0, 0, 0, 0),
23971 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23972 0, 0, 0, 0),
23973 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23974 0, 0, 0, 0),
23975 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23976 0, 0, 0, 0),
23977 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23978 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023979 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23980 0, 0, 0, 0),
23981 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23982 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023983 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23984 0, 0, 0, 0),
23985 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23986 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023987 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23988 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23989 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23990 0, 0, 0, 0),
23991 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23992 0, 0, 0, 0),
23993 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23994 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23995 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23996 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23997 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23998 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23999 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
24000 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
24001 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
24002 /* In- call recording */
24003 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
24004 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053024005 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
24006 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024007 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
24008 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
24009
24010 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
24011 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053024012 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
24013 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024014 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
24015 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
24016
24017 /* Switch Definitions */
24018 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
24019 &slim_fm_switch_mixer_controls),
24020 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
24021 &slim1_fm_switch_mixer_controls),
24022 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
24023 &slim3_fm_switch_mixer_controls),
24024 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
24025 &slim4_fm_switch_mixer_controls),
24026 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
24027 &slim6_fm_switch_mixer_controls),
24028 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24029 &pcm_rx_switch_mixer_controls),
24030 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24031 &int0_mi2s_rx_switch_mixer_controls),
24032 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24033 &int4_mi2s_rx_switch_mixer_controls),
24034 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24035 &pri_mi2s_rx_switch_mixer_controls),
24036 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24037 &sec_mi2s_rx_switch_mixer_controls),
24038 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24039 &tert_mi2s_rx_switch_mixer_controls),
24040 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24041 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053024042 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24043 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080024044 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
24045 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024046 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24047 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024048 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
24049 &hfp_pri_aux_switch_mixer_controls),
24050 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
24051 &hfp_aux_switch_mixer_controls),
24052 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
24053 &hfp_int_switch_mixer_controls),
24054 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
24055 &hfp_slim7_switch_mixer_controls),
24056 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
24057 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080024058 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
24059 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053024060 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024061 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024062 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024063 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024064
24065 /* Mixer definitions */
24066 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24067 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
24068 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24069 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
24070 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24071 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
24072 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24073 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
24074 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24075 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
24076 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24077 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053024078 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24079 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024080 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
24081 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
24082 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
24083 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024084 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
24085 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020024086 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24087 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
24088 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24089 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024090 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24091 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
24092 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24093 quaternary_mi2s_rx_mixer_controls,
24094 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
24095 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24096 tertiary_mi2s_rx_mixer_controls,
24097 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
24098 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24099 secondary_mi2s_rx_mixer_controls,
24100 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
24101 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24102 secondary_mi2s_rx2_mixer_controls,
24103 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
24104 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24105 primary_mi2s_rx_mixer_controls,
24106 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
24107 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24108 int0_mi2s_rx_mixer_controls,
24109 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
24110 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24111 int4_mi2s_rx_mixer_controls,
24112 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
24113 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24114 quinary_mi2s_rx_mixer_controls,
24115 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024116 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24117 senary_mi2s_rx_mixer_controls,
24118 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024119 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24120 pri_tdm_rx_0_mixer_controls,
24121 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
24122 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24123 pri_tdm_rx_1_mixer_controls,
24124 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
24125 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24126 pri_tdm_rx_2_mixer_controls,
24127 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
24128 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24129 pri_tdm_rx_3_mixer_controls,
24130 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
24131 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24132 pri_tdm_tx_0_mixer_controls,
24133 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
24134 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24135 sec_tdm_rx_0_mixer_controls,
24136 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
24137 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24138 sec_tdm_rx_1_mixer_controls,
24139 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
24140 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24141 sec_tdm_rx_2_mixer_controls,
24142 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
24143 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24144 sec_tdm_rx_3_mixer_controls,
24145 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
24146 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24147 sec_tdm_tx_0_mixer_controls,
24148 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
24149 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24150 tert_tdm_rx_0_mixer_controls,
24151 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
24152 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24153 tert_tdm_tx_0_mixer_controls,
24154 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
24155 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24156 tert_tdm_rx_1_mixer_controls,
24157 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
24158 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24159 tert_tdm_rx_2_mixer_controls,
24160 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
24161 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24162 tert_tdm_rx_3_mixer_controls,
24163 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
24164 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
24165 tert_tdm_rx_4_mixer_controls,
24166 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
24167 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24168 quat_tdm_rx_0_mixer_controls,
24169 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
24170 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24171 quat_tdm_tx_0_mixer_controls,
24172 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
24173 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24174 quat_tdm_rx_1_mixer_controls,
24175 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
24176 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24177 quat_tdm_rx_2_mixer_controls,
24178 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
24179 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24180 quat_tdm_rx_3_mixer_controls,
24181 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024182 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24183 quin_tdm_rx_0_mixer_controls,
24184 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
24185 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24186 quin_tdm_tx_0_mixer_controls,
24187 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
24188 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24189 quin_tdm_rx_1_mixer_controls,
24190 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024191 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24192 quin_tdm_tx_1_mixer_controls,
24193 ARRAY_SIZE(quin_tdm_tx_1_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024194 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24195 quin_tdm_rx_2_mixer_controls,
24196 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024197 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24198 quin_tdm_tx_2_mixer_controls,
24199 ARRAY_SIZE(quin_tdm_tx_2_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024200 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24201 quin_tdm_rx_3_mixer_controls,
24202 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024203 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24204 quin_tdm_tx_3_mixer_controls,
24205 ARRAY_SIZE(quin_tdm_tx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024206 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24207 sen_tdm_tx_0_mixer_controls,
24208 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
24209 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24210 sen_tdm_rx_0_mixer_controls,
24211 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
24212 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24213 sen_tdm_rx_1_mixer_controls,
24214 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
24215 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24216 sen_tdm_rx_2_mixer_controls,
24217 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
24218 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24219 sen_tdm_rx_3_mixer_controls,
24220 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Ralf Herz29e07132019-07-26 15:15:21 +020024221 SND_SOC_DAPM_MIXER("PRI_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24222 pri_meta_mi2s_rx_mixer_controls,
24223 ARRAY_SIZE(pri_meta_mi2s_rx_mixer_controls)),
24224 SND_SOC_DAPM_MIXER("SEC_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24225 sec_meta_mi2s_rx_mixer_controls,
24226 ARRAY_SIZE(sec_meta_mi2s_rx_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024227 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24228 wsa_cdc_dma_rx_0_mixer_controls,
24229 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
24230 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24231 wsa_cdc_dma_rx_1_mixer_controls,
24232 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024233 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24234 rx_cdc_dma_rx_0_mixer_controls,
24235 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
24236 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24237 rx_cdc_dma_rx_1_mixer_controls,
24238 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
24239 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24240 rx_cdc_dma_rx_2_mixer_controls,
24241 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
24242 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24243 rx_cdc_dma_rx_3_mixer_controls,
24244 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
24245 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
24246 rx_cdc_dma_rx_4_mixer_controls,
24247 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
24248 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
24249 rx_cdc_dma_rx_5_mixer_controls,
24250 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
24251 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
24252 rx_cdc_dma_rx_6_mixer_controls,
24253 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
24254 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
24255 rx_cdc_dma_rx_7_mixer_controls,
24256 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024257 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
24258 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
24259 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
24260 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
24261 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
24262 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
24263 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
24264 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
24265 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
24266 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
24267 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
24268 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
24269 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
24270 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
24271 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
24272 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024273 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
24274 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024275 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
24276 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024277 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
24278 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
24279 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
24280 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
24281 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
24282 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
24283 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
24284 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070024285 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
24286 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070024287 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
24288 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053024289 SND_SOC_DAPM_MIXER("MultiMedia23 Mixer", SND_SOC_NOPM, 0, 0,
24290 mmul23_mixer_controls, ARRAY_SIZE(mmul23_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053024291 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
24292 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024293 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
24294 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
24295 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
24296 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024297 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
24298 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024299 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24300 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
24301 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24302 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
24303 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24304 tert_auxpcm_rx_mixer_controls,
24305 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
24306 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24307 quat_auxpcm_rx_mixer_controls,
24308 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024309 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24310 quin_auxpcm_rx_mixer_controls,
24311 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024312 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24313 sen_auxpcm_rx_mixer_controls,
24314 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024315 /* incall */
24316 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
24317 incall_music_delivery_mixer_controls,
24318 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
24319 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24320 incall_music2_delivery_mixer_controls,
24321 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
24322 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24323 slimbus_4_rx_mixer_controls,
24324 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
24325 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24326 slimbus_6_rx_mixer_controls,
24327 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
24328 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24329 usb_audio_rx_mixer_controls,
24330 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
24331 /* Voice Mixer */
24332 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
24333 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
24334 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
24335 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
24336 SND_SOC_NOPM, 0, 0,
24337 sec_i2s_rx_voice_mixer_controls,
24338 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
24339 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
24340 SND_SOC_NOPM, 0, 0,
24341 sec_mi2s_rx_voice_mixer_controls,
24342 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
24343 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
24344 SND_SOC_NOPM, 0, 0,
24345 slimbus_rx_voice_mixer_controls,
24346 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
24347 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
24348 SND_SOC_NOPM, 0, 0,
24349 bt_sco_rx_voice_mixer_controls,
24350 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
24351 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
24352 SND_SOC_NOPM, 0, 0,
24353 afe_pcm_rx_voice_mixer_controls,
24354 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
24355 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
24356 SND_SOC_NOPM, 0, 0,
24357 aux_pcm_rx_voice_mixer_controls,
24358 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
24359 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
24360 SND_SOC_NOPM, 0, 0,
24361 sec_aux_pcm_rx_voice_mixer_controls,
24362 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
24363 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
24364 SND_SOC_NOPM, 0, 0,
24365 tert_aux_pcm_rx_voice_mixer_controls,
24366 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
24367 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
24368 SND_SOC_NOPM, 0, 0,
24369 quat_aux_pcm_rx_voice_mixer_controls,
24370 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024371 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
24372 SND_SOC_NOPM, 0, 0,
24373 quin_aux_pcm_rx_voice_mixer_controls,
24374 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024375 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
24376 SND_SOC_NOPM, 0, 0,
24377 sen_aux_pcm_rx_voice_mixer_controls,
24378 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024379 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
24380 SND_SOC_NOPM, 0, 0,
24381 hdmi_rx_voice_mixer_controls,
24382 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
24383 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
24384 SND_SOC_NOPM, 0, 0,
24385 mi2s_rx_voice_mixer_controls,
24386 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
24387 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
24388 SND_SOC_NOPM, 0, 0,
24389 pri_mi2s_rx_voice_mixer_controls,
24390 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
24391 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
24392 SND_SOC_NOPM, 0, 0,
24393 int0_mi2s_rx_voice_mixer_controls,
24394 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
24395 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
24396 SND_SOC_NOPM, 0, 0,
24397 int4_mi2s_rx_voice_mixer_controls,
24398 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
24399 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
24400 SND_SOC_NOPM, 0, 0,
24401 tert_mi2s_rx_voice_mixer_controls,
24402 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
24403 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
24404 SND_SOC_NOPM, 0, 0,
24405 quat_mi2s_rx_voice_mixer_controls,
24406 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
24407 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
24408 SND_SOC_NOPM, 0, 0,
24409 quin_mi2s_rx_voice_mixer_controls,
24410 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024411 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
24412 SND_SOC_NOPM, 0, 0,
24413 pri_tdm_rx_0_voice_mixer_controls,
24414 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
24415 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
24416 SND_SOC_NOPM, 0, 0,
24417 pri_tdm_rx_1_voice_mixer_controls,
24418 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
24419 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
24420 SND_SOC_NOPM, 0, 0,
24421 pri_tdm_rx_2_voice_mixer_controls,
24422 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
24423 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
24424 SND_SOC_NOPM, 0, 0,
24425 pri_tdm_rx_3_voice_mixer_controls,
24426 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024427 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
24428 SND_SOC_NOPM, 0, 0,
24429 sen_mi2s_rx_voice_mixer_controls,
24430 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024431 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
24432 SND_SOC_NOPM, 0, 0,
24433 quat_tdm_rx_2_voice_mixer_controls,
24434 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024435 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2_Voice Mixer",
24436 SND_SOC_NOPM, 0, 0,
24437 quin_tdm_rx_2_voice_mixer_controls,
24438 ARRAY_SIZE(quin_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024439 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
24440 SND_SOC_NOPM, 0, 0,
24441 wsa_cdc_dma_rx_0_voice_mixer_controls,
24442 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
24443 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
24444 SND_SOC_NOPM, 0, 0,
24445 rx_cdc_dma_rx_0_voice_mixer_controls,
24446 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024447 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1_Voice Mixer",
24448 SND_SOC_NOPM, 0, 0,
24449 rx_cdc_dma_rx_1_voice_mixer_controls,
24450 ARRAY_SIZE(rx_cdc_dma_rx_1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024451 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
24452 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
24453 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024454 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
24455 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
24456 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
24457 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
24458 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
24459 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
24460 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24461 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
24462 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24463 int_bt_a2dp_rx_mixer_controls,
24464 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
24465 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24466 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
24467 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24468 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
24469 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24470 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
24471 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24472 tx_voice2_stub_mixer_controls,
24473 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
24474 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24475 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
24476 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
24477 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
24478 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
24479 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
24480 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24481 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
24482 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
24483 SND_SOC_NOPM, 0, 0,
24484 slimbus_6_rx_voice_mixer_controls,
24485 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
24486 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24487 slimbus_7_rx_voice_mixer_controls,
24488 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
24489 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24490 slimbus_8_rx_voice_mixer_controls,
24491 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
24492 /* port mixer */
24493 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
24494 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
24495 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
24496 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
24497 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
24498 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
24499 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
24500 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
24501 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
24502 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
24503 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
24504 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
24505 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
24506 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
24507 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024508 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
24509 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
24510 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024511 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
24512 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
24513 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024514 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24515 sbus_1_rx_port_mixer_controls,
24516 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
24517 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24518 bt_sco_rx_port_mixer_controls,
24519 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
24520 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
24521 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
24522 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
24523 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
24524 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
24525 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
24526 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
24527 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
24528 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070024529 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070024530 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
24531 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024532 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
24533 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
24534 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
24535 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
24536 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
24537 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
24538 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
24539 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
24540 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
24541 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24542 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
24543 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24544 primary_mi2s_rx_port_mixer_controls,
24545 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
24546 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24547 sec_mi2s_rx_port_mixer_controls,
24548 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
24549 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24550 tert_mi2s_rx_port_mixer_controls,
24551 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
24552 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24553 quat_mi2s_rx_port_mixer_controls,
24554 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024555 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24556 quin_mi2s_rx_port_mixer_controls,
24557 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024558 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24559 sen_mi2s_rx_port_mixer_controls,
24560 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024561 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24562 pri_tdm_rx_0_port_mixer_controls,
24563 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
24564 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24565 pri_tdm_rx_1_port_mixer_controls,
24566 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
24567 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24568 pri_tdm_rx_2_port_mixer_controls,
24569 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
24570 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24571 pri_tdm_rx_3_port_mixer_controls,
24572 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
24573 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24574 sec_tdm_rx_0_port_mixer_controls,
24575 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
24576 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24577 sec_tdm_rx_1_port_mixer_controls,
24578 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
24579 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24580 sec_tdm_rx_2_port_mixer_controls,
24581 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
24582 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24583 sec_tdm_rx_3_port_mixer_controls,
24584 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070024585 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24586 sec_tdm_rx_7_port_mixer_controls,
24587 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024588 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24589 tert_tdm_rx_0_port_mixer_controls,
24590 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
24591 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24592 tert_tdm_rx_1_port_mixer_controls,
24593 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
24594 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24595 tert_tdm_rx_2_port_mixer_controls,
24596 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
24597 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24598 tert_tdm_rx_3_port_mixer_controls,
24599 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
24600 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24601 quat_tdm_rx_0_port_mixer_controls,
24602 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
24603 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24604 quat_tdm_rx_1_port_mixer_controls,
24605 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
24606 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24607 quat_tdm_rx_2_port_mixer_controls,
24608 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
24609 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24610 quat_tdm_rx_3_port_mixer_controls,
24611 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050024612 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24613 quat_tdm_rx_7_port_mixer_controls,
24614 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024615 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24616 quin_tdm_rx_0_port_mixer_controls,
24617 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
24618 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24619 quin_tdm_rx_1_port_mixer_controls,
24620 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
24621 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24622 quin_tdm_rx_2_port_mixer_controls,
24623 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
24624 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24625 quin_tdm_rx_3_port_mixer_controls,
24626 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080024627 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24628 quin_tdm_rx_7_port_mixer_controls,
24629 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024630 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24631 sen_tdm_rx_0_port_mixer_controls,
24632 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
24633 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24634 sen_tdm_rx_1_port_mixer_controls,
24635 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
24636 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24637 sen_tdm_rx_2_port_mixer_controls,
24638 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
24639 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24640 sen_tdm_rx_3_port_mixer_controls,
24641 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024642 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24643 int0_mi2s_rx_port_mixer_controls,
24644 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
24645 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24646 int4_mi2s_rx_port_mixer_controls,
24647 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024648 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24649 wsa_cdc_dma_rx_0_port_mixer_controls,
24650 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
24651 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24652 rx_cdc_dma_rx_0_port_mixer_controls,
24653 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024654 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24655 rx_cdc_dma_rx_1_port_mixer_controls,
24656 ARRAY_SIZE(rx_cdc_dma_rx_1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024657 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
24658 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
24659 ARRAY_SIZE(tx_qchat_mixer_controls)),
24660 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
24661 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
24662 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
24663 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
24664 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
24665 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024666 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
24667 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
24668 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024669 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
24670 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
24671 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024672 /* lsm mixer definitions */
24673 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
24674 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
24675 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
24676 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
24677 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
24678 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
24679 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
24680 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
24681 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
24682 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
24683 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
24684 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
24685 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
24686 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
24687 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
24688 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
24689 /* Virtual Pins to force backends ON atm */
24690 SND_SOC_DAPM_OUTPUT("BE_OUT"),
24691 SND_SOC_DAPM_INPUT("BE_IN"),
24692
24693 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24694 &slim0_rx_vi_fb_lch_mux),
24695 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24696 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024697 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24698 &wsa_rx_0_vi_fb_lch_mux),
24699 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24700 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024701 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
24702 &mi2s_rx_vi_fb_mux),
24703 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
24704 &int4_mi2s_rx_vi_fb_mono_ch_mux),
24705 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
24706 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
24707
24708 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
24709 &voc_ext_ec_mux),
24710 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
24711 &ext_ec_ref_mux_ul1),
24712 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
24713 &ext_ec_ref_mux_ul2),
24714 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
24715 &ext_ec_ref_mux_ul3),
24716 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
24717 &ext_ec_ref_mux_ul4),
24718 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
24719 &ext_ec_ref_mux_ul5),
24720 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
24721 &ext_ec_ref_mux_ul6),
24722 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
24723 &ext_ec_ref_mux_ul8),
24724 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
24725 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024726 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
24727 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024728 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
24729 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024730 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
24731 &ext_ec_ref_mux_ul17),
24732 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
24733 &ext_ec_ref_mux_ul18),
24734 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
24735 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080024736 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
24737 &ext_ec_ref_mux_ul28),
24738 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
24739 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024740};
24741
24742static const struct snd_soc_dapm_route intercon[] = {
24743 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24744 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24745 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24746 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24747 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24748 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24749 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24750 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24751 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24752 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24753 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24754 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24755 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24756 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24757 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24758 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024759 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024760 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
24761
24762 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24763 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24764 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24765 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24766 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24767 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24768 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24769 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24770 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24771 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24772 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24773 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24774 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24775 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24776 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24777 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024778 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024779 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24780
24781 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24782 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24783 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24784 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24785 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24786 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24787 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24788 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24789 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24790 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24791 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24792 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24793 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24794 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24795 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24796 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024797 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024798 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24799
24800 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24801 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24802 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24803 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24804 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24805 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24806 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24807 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24808 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24809 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24810 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24811 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24812 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24813 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24814 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24815 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024816 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024817 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24818
24819 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24820 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24821 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24822 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24823 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24824 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24825 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24826 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24827 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24828 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24829 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24830 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24831 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24832 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24833 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24834 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024835 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024836 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24837
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024838 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24839 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24840 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24841 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24842 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24843 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24844 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24845 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24846 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24847 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24848 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24849 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24850 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24851 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24852 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24853 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024854 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024855 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24856
24857 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24858 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24859 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24860 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24861 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24862 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24863 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24864 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24865 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24866 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24867 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24868 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24869 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24870 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24871 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24872 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024873 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024874 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24875
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024876 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24877 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24878 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24879 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24880 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24881 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24882 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24883 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24884 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24885 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24886 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24887 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24888 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24889 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24890 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24891 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024892 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024893 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24894
24895 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24896 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24897 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24898 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24899 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24900 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24901 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24902 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24903 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24904 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24905 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24906 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24907 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24908 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24909 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24910 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024911 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024912 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24913
24914 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24915 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24916 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24917 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24918 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24919 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24920 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24921 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24922 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24923 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24924 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24925 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24926 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24927 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24928 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24929 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024930 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024931 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24932
24933 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24934 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24935 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24936 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24937 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24938 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24939 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24940 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24941 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24942 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24943 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24944 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24945 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24946 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24947 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24948 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024949 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024950 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24951
24952 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24953 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24954 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24955 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24956 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24957 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24958 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24959 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24960 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24961 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24962 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24963 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24964 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24965 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24966 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24967 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024968 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024969 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24970
24971 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24972 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24973 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24974 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24975 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24976 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24977 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24978 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24979 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24980 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24981 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24982 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24983 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24984 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24985 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24986 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024987 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024988 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24989
24990 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24991 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24992 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24993 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24994 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24995 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24996 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24997 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24998 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24999 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
25000 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
25001 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
25002 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
25003 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
25004 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
25005 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025006 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025007 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
25008
25009 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
25010 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
25011 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
25012 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
25013 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
25014 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
25015 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
25016 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
25017 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
25018 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
25019 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
25020 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
25021 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
25022 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
25023 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
25024 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025025 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025026 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
25027
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025028 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
25029 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
25030 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
25031 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
25032 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
25033 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
25034 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
25035 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
25036 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
25037 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
25038 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
25039 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
25040 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
25041 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
25042 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
25043 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025044 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025045 {"HDMI", NULL, "HDMI Mixer"},
25046
25047 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
25048 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
25049 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
25050 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
25051 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
25052 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
25053 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
25054 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
25055 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
25056 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
25057 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
25058 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
25059 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
25060 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
25061 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
25062 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025063 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025064 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
25065
Karthikeyan Mani57550082018-05-03 18:43:58 -070025066 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
25067 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
25068 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
25069 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
25070 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
25071 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
25072 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
25073 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
25074 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
25075 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
25076 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
25077 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
25078 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
25079 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
25080 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
25081 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025082 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070025083 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
25084
Ralf Herzc8701f72018-06-20 11:37:35 +020025085 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25086 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25087 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25088 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25089 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25090 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25091 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25092 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25093 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25094 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25095 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25096 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25097 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25098 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25099 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25100 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025101 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025102 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
25103
25104 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25105 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25106 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25107 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25108 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25109 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25110 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25111 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25112 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25113 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25114 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25115 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25116 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25117 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25118 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25119 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025120 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025121 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025122
25123 /* incall */
25124 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
25125 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
Anurag Chouhanb2a024a2019-10-09 11:39:08 +053025126 {"Incall_Music Audio Mixer", "MultiMedia4", "MM_DL4"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025127 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
25128 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
25129 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
25130 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25131 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25132 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25133 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25134 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
25135 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25136 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25137 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25138 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25139 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
25140
25141 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25142 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25143 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25144 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25145 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25146 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25147 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25148 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25149 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25150 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25151 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25152 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25153 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25154 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25155 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25156 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025157 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025158 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
25159
25160 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25161 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25162 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25163 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25164 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25165 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25166 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25167 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25168 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25169 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25170 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25171 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25172 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25173 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25174 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25175 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025176 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025177 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
25178
Surendar Karka3ef3d812018-09-28 18:52:35 +053025179 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25180 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25181 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25182 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25183 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25184 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25185 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25186 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25187 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25188 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25189 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25190 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25191 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25192 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25193 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25194 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25195 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25196 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
25197
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025198 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25199 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25200 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25201 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25202 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25203 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25204 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25205 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25206 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25207 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25208 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25209 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25210 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25211 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25212 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25213 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025214 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025215 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
25216
25217 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25218 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25219 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
Zhou Song8e7a8d42019-11-11 18:15:07 +080025220 {"MultiMedia9 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025221 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25222 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25223 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
Zhou Song8e7a8d42019-11-11 18:15:07 +080025224 {"MultiMedia9 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025225 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
25226 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25227 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25228 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025229 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025230 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25231 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025232 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025233 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025234 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025235 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025236 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Harshal Ahire1cbefc92019-11-20 14:54:42 +053025237 {"MultiMedia17 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025238 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025239 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025240 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025241 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025242 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025243 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025244 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025245 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025246 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25247 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025248 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025249 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025250 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25251 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25252 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25253 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25254 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025255 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25256 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025257 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025258 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025259 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025260 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25261 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25262 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025263 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025264 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25265 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25266 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25267 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25268 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025269 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025270 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025271 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025272 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25273 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25274 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025275 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025276 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25277 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025278 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025279 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025280 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025281 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025282 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025283 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025284 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025285 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25286 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025287 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025288 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025289 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025290 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025291 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25292 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25293 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025294 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025295 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025296 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25297 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25298 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025299 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025300
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025301 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25302 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25303 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25304 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25305 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25306 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25307 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25308 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25309 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25310 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25311 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25312 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25313 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25314 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25315 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25316 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025317 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025318 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
25319
25320 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25321 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25322 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25323 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25324 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25325 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25326 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25327 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25328 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25329 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25330 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25331 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25332 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25333 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25334 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025335 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025336 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
25337
25338 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25339 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25340 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25341 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25342 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25343 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25344 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25345 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25346 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25347 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25348 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25349 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25350 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25351 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025352 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025353 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
25354
25355 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25356 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25357 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25358 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25359 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25360 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25361 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25362 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25363 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25364 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25365 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25366 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25367 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25368 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025369 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025370 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
25371
25372 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25373 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
25374
25375 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25376 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25377
25378 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25379 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25380 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25381 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25382 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25383 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25384 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25385 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025386 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025387 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25388 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25389 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25390 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25391 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25392 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25393 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025394 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025395 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
Jhansi Konathala8cf03d42019-08-20 19:27:39 +053025396 {"PRI_MI2S_RX Audio Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025397
25398 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25399 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25400 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25401 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25402 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25403 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25404 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25405 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25406 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25407 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25408 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25409 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25410 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25411 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25412 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25413 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
25414
25415 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25416 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25417 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25418 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25419 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25420 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25421 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25422 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25423 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25424 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25425 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25426 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25427 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25428 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25429 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25430 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
25431
25432 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25433 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25434 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25435 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25436 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25437 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25438 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25439 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25440 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25441 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25442 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25443 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25444 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25445 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25446 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25447 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25448 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25449 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
25450
Karthikeyan Manic3700752019-03-11 18:33:53 -070025451 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25452 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25453 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25454 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25455 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25456 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25457 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25458 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25459 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25460 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25461 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25462 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25463 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25464 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25465 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25466 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
25467
Ralf Herz29e07132019-07-26 15:15:21 +020025468 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25469 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25470 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25471 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25472 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25473 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25474 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25475 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25476 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25477 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25478 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25479 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25480 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25481 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25482 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25483 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25484 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25485 {"PRI_META_MI2S_RX", NULL, "PRI_META_MI2S_RX Audio Mixer"},
25486
25487 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25488 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25489 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25490 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25491 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25492 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25493 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25494 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25495 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25496 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25497 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25498 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25499 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25500 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25501 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25502 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25503 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25504 {"SEC_META_MI2S_RX", NULL, "SEC_META_MI2S_RX Audio Mixer"},
25505
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025506 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25507 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25508 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25509 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25510 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25511 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25512 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25513 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25514 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25515 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25516 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25517 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25518 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25519 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25520 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25521 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025522 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025523 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025524 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025525 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
25526
25527 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25528 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25529 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25530 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25531 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25532 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25533 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25534 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25535 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25536 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25537 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25538 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25539 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25540 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25541 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25542 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025543 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025544 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025545 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025546 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
25547
25548 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25549 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25550 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25551 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25552 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25553 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25554 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25555 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25556 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25557 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25558 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25559 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25560 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25561 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25562 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25563 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025564 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025565 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025566 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025567 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
25568
25569 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25570 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25571 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25572 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25573 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25574 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25575 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25576 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25577 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25578 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25579 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25580 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25581 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25582 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25583 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25584 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025585 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025586 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025587 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025588 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
25589
25590 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25591 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25592 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25593 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25594 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25595 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25596 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25597 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25598 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25599 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25600 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25601 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25602 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25603 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25604 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25605 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025606 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025607 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
25608
25609 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25610 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25611 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25612 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25613 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25614 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25615 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25616 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25617 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25618 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25619 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25620 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25621 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25622 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25623 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25624 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025625 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025626 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025627 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025628 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
25629
25630 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25631 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25632 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25633 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25634 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25635 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25636 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25637 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25638 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25639 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25640 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25641 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25642 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25643 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25644 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25645 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025646 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025647 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025648 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025649 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
25650
25651 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25652 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25653 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25654 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25655 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25656 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25657 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25658 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25659 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25660 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25661 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25662 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25663 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25664 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25665 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25666 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025667 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025668 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025669 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025670 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
25671
25672 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25673 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25674 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25675 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25676 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25677 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25678 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25679 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25680 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25681 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25682 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25683 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25684 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25685 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25686 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25687 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025688 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025689 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025690 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025691 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
25692
25693 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25694 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25695 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25696 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25697 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25698 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25699 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25700 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25701 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25702 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25703 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25704 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25705 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25706 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25707 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25708 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025709 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025710 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
25711
25712 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25713 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25714 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25715 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25716 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25717 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25718 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25719 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25720 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25721 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25722 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25723 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25724 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25725 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25726 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25727 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025728 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025729 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025730 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025731 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
25732
25733 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25734 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25735 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25736 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25737 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25738 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25739 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25740 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25741 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25742 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25743 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25744 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25745 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25746 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25747 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25748 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025749 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025750 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
25751
25752 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25753 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25754 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25755 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25756 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25757 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25758 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25759 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25760 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25761 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25762 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25763 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25764 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25765 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25766 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25767 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025768 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025769 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025770 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025771 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
25772
25773 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25774 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25775 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25776 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25777 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25778 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25779 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25780 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25781 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25782 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25783 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25784 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25785 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25786 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25787 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25788 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025789 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025790 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025791 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025792 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
25793
25794 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25795 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25796 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25797 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25798 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25799 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25800 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25801 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25802 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25803 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25804 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25805 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25806 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25807 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25808 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25809 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025810 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025811 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025812 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025813 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
25814
25815 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
25816 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
25817 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
25818 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
25819 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
25820 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
25821 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
25822 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
25823 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
25824 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25825 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25826 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25827 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25828 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25829 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25830 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025831 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025832 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025833 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025834 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25835
25836 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25837 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25838 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25839 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25840 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25841 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25842 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25843 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25844 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25845 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25846 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25847 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25848 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25849 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25850 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25851 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25852 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025853 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025854 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025855 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025856 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25857
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025858 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25859 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25860 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25861 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25862 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25863 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25864 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25865 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25866 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25867 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25868 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25869 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25870 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25871 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25872 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25873 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025874 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025875 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25876
25877 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25878 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25879 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25880 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25881 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25882 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25883 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25884 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25885 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25886 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25887 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25888 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25889 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25890 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25891 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25892 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25893 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025894 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025895 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025896 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025897 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25898
25899 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25900 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25901 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25902 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25903 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25904 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25905 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25906 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25907 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25908 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25909 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25910 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25911 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25912 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25913 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25914 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25915 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025916 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025917 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025918 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025919 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25920
25921 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25922 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25923 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25924 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25925 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25926 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25927 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25928 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25929 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25930 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25931 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25932 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25933 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25934 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25935 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25936 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25937 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025938 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025939 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025940 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025941 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25942
Rohit Kumara5077932017-09-10 22:05:05 +053025943 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25944 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25945 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25946 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25947 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25948 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25949 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25950 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25951 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25952 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25953 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25954 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25955 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25956 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25957 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25958 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25959 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025960 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025961 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025962 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053025963 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25964
25965 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25966 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25967 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25968 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25969 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25970 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25971 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25972 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25973 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25974 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25975 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25976 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25977 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25978 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25979 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25980 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025981 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053025982 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25983
25984 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25985 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25986 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25987 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25988 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25989 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25990 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25991 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25992 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25993 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25994 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25995 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25996 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25997 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25998 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25999 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
26000 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026001 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070026002 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026003 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053026004 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
26005
26006 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
26007 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
26008 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
26009 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
26010 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
26011 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
26012 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
26013 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
26014 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
26015 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
26016 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
26017 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
26018 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
26019 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
26020 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
26021 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
26022 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026023 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070026024 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026025 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053026026 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
26027
26028 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
26029 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
26030 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
26031 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
26032 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
26033 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
26034 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
26035 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
26036 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
26037 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
26038 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
26039 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
26040 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
26041 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
26042 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
26043 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
26044 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026045 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070026046 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026047 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053026048 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
26049
Karthikeyan Manic3700752019-03-11 18:33:53 -070026050 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
26051 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
26052 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
26053 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
26054 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
26055 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
26056 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
26057 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
26058 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
26059 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
26060 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
26061 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
26062 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
26063 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
26064 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
26065 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
26066 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
26067 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
26068 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
26069
26070 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
26071 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
26072 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
26073 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
26074 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
26075 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
26076 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
26077 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
26078 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
26079 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
26080 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
26081 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
26082 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
26083 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
26084 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
26085 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
26086 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
26087
26088 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
26089 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
26090 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
26091 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
26092 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
26093 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
26094 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
26095 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
26096 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
26097 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
26098 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
26099 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
26100 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
26101 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
26102 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
26103 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
26104 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
26105 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
26106 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
26107
26108 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
26109 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
26110 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
26111 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
26112 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
26113 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
26114 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
26115 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
26116 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
26117 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
26118 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
26119 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
26120 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
26121 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
26122 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
26123 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
26124 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
26125 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
26126 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
26127
26128 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
26129 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
26130 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
26131 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
26132 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
26133 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
26134 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
26135 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
26136 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
26137 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
26138 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
26139 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
26140 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
26141 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
26142 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
26143 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
26144 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
26145 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
26146 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
26147
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026148 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
26149 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
26150 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
26151 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
26152 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026153 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026154 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026155 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26156 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26157 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26158 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
26159 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026160 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
26161 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026162 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26163 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26164 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26165 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26166 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26167 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26168 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026169 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026170 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26171 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
26172 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026173 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026174 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053026175 {"MultiMedia2 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026176 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
26177 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026178 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026179 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
26180 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026181 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26182 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
26183 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026184 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026185 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
26186 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
26187 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026188 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026189 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026190 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
26191 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
26192 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026193 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
26194 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
26195 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026196 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26197 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26198 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26199 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26200 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26201 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26202 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26203 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026204 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026205 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26206 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26207 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026208 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026209 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26210 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26211 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026212 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026213 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026214 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26215 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26216 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026217 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026218 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026219 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26220 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26221 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26222 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26223 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026224 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026225 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26226 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26227 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26228 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026229 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026230 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026231
26232 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26233 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26234 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26235 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26236 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26237 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26238 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26239 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26240 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26241 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26242 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26243 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26244 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26245 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26246 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26247 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026248 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026249 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26250 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26251 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26252 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026253 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26254 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26255 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26256 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026257 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26258 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26259 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26260 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26261 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026262 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026263 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26264 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26265 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26266 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26267 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26268 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026269 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26270 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026271
26272 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26273 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26274 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26275 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26276 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26277 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26278 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26279 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26280 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26281 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26282 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26283 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26284 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26285 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26286 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26287 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026288 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026289 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26290 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26291 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26292 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026293 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26294 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26295 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26296 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026297 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26298 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26299 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26300 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26301 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026302 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026303 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26304 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26305 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26306 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26307 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26308 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026309 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26310 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026311
26312 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26313 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26314 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26315 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26316 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26317 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26318 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26319 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26320 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26321 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26322 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26323 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26324 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26325 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26326 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26327 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026328 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026329 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26330 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26331 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26332 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026333 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26334 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26335 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26336 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026337 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26338 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26339 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26340 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26341 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026342 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026343 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26344 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26345 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26346 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26347 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26348 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026349 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26350 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026351
26352 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26353 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26354 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26355 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26356 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26357 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26358 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26359 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26360 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26361 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26362 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26363 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26364 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26365 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26366 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26367 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026368 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026369 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26370 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26371 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26372 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026373 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26374 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26375 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26376 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026377 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26378 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26379 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26380 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26381 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026382 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026383 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26384 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26385 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26386 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26387 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26388 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026389 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26390 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026391
26392 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26393 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26394 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26395 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26396 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26397 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26398 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26399 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26400 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26401 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26402 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26403 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26404 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26405 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26406 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26407 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026408 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026409 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26410 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26411 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26412 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026413 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26414 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26415 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26416 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026417 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26418 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26419 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26420 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26421 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026422 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026423 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26424 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26425 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26426 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26427 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26428 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026429 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26430 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026431
26432 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26433 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26434 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26435 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26436 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26437 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26438 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26439 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26440 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26441 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26442 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26443 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26444 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26445 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26446 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26447 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026448 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026449 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26450 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26451 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26452 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026453 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26454 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26455 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26456 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026457 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26458 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26459 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26460 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26461 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026462 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026463 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26464 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26465 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26466 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26467 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26468 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026469 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26470 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026471
26472 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26473 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26474 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26475 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26476 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26477 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26478 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26479 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26480 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26481 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26482 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26483 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26484 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26485 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26486 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26487 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026488 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026489 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26490 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26491 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26492 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026493 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26494 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26495 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26496 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026497 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26498 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26499 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26500 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26501 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026502 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026503 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26504 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26505 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26506 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26507 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26508 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026509 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26510 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026511
Samyak Jain810e42a2019-01-07 17:53:34 +053026512 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026513 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26514 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26515 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26516 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26517 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26518 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26519 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26520 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026521 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26522 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26523 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26524 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026525 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26526 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26527 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26528 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026529 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26530 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26531 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26532 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26533 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026534 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026535 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26536 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26537 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26538 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26539 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26540 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026541 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26542 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026543 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026544
Laxminath Kasam38070be2017-08-17 18:21:59 +053026545 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26546 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26547 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26548 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26549 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26550 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26551 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26552 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026553 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26554 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26555 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26556 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26557 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26558 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026559 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026560
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026561 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26562 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26563 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26564 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026565 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026566 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026567 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26568 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26569 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26570 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26571 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26572 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26573 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26574 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26575 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26576 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26577 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26578 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26579 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26580 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26581 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26582 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026583 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26584 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26585 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26586 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026587 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26588 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26589 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26590 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026591 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26592 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26593 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26594 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26595 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026596 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026597 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26598 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26599 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26600 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26601 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26602 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026603 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26604 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026605 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026606
Derek Chen07c6d1c2018-07-05 10:39:25 -070026607 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26608 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26609 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26610 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26611 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26612 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26613 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26614 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26615 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26616 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26617 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26618 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26619 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26620 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26621 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26622 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26623 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26624 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26625 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26626 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26627 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26628 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026629 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26630 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26631 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26632 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026633 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26634 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26635 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26636 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26637 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026638 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026639 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26640 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26641 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26642 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26643 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26644 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26645 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26646 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026647 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026648
Derek Chenb097d922019-07-31 17:28:02 -070026649 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26650 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26651 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26652 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26653 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26654 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26655 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26656 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26657 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26658 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26659 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26660 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26661 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26662 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26663 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26664 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26665 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26666 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26667 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26668 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26669
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026670 {"MultiMedia23 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26671 {"MultiMedia23 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26672 {"MultiMedia23 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26673 {"MultiMedia23 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26674 {"MultiMedia23 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26675 {"MultiMedia23 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26676 {"MultiMedia23 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26677 {"MultiMedia23 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26678 {"MultiMedia23 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26679 {"MultiMedia23 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26680 {"MultiMedia23 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26681 {"MultiMedia23 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26682 {"MultiMedia23 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26683 {"MultiMedia23 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26684 {"MultiMedia23 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26685 {"MultiMedia23 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26686 {"MultiMedia23 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26687 {"MultiMedia23 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26688 {"MultiMedia23 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26689 {"MultiMedia23 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26690
Surendar Karkac1cde372018-08-14 18:56:24 +053026691 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026692 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026693 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26694 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026695 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026696 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26697 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26698 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26699 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26700 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026701 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026702 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26703 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026704 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026705
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026706 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26707 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26708 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26709 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26710 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26711 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026712 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026713
Asish Bhattacharya34504582017-08-08 12:55:01 +053026714 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26715 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26716 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26717 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26718 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26719 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26720 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26721 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26722 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26723 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26724 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26725 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26726 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26727 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26728 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26729 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26730 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026731 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26732 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26733 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26734 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26735 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026736 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026737 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26738 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26739 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26740 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26741 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26742 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026743 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26744 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026745 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026746
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026747 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26748 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26749 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26750 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26751 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26752 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026753 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026754
26755 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26756 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26757 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26758 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26759 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26760 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026761 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026762 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26763 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026764
26765 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26766 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26767 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26768 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26769 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26770 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026771 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026772 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26773 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026774
26775 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26776 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26777 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26778 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26779 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26780 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026781 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026782 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26783 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026784
26785 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26786 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26787 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26788 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26789 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26790 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026791 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026792 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26793 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026794
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026795 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26796 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26797 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26798 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26799 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26800 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26801 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
26802 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26803 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
26804
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026805 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26806 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26807 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26808 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26809 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26810 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26811 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26812 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26813 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26814 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26815 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26816 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26817 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26818 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26819 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26820 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26821 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26822 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
26823
26824 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26825 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26826 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26827 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26828 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26829 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26830 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26831 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26832 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26833 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26834 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26835 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26836 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26837 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26838 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26839 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26840 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26841 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
26842
26843 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26844 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26845 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26846 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26847 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26848 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26849 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26850 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26851 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26852 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26853 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26854 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26855 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26856 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26857 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26858 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26859 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26860
26861 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26862 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26863 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26864 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26865 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26866 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26867 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26868 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26869 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26870 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26871 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26872 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26873 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26874 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26875 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26876 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26877 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26878
26879 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26880 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26881 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026882 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026883 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26884 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26885 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026886 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26887 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026888 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026889 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26890 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026891 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026892 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26893 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026894 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026895 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26896 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26897 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026898 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26899 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026900 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026901 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26902 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26903 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26904
26905 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26906 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26907 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026908 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026909 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26910 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26911 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026912 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26913 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026914 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026915 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26916 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026917 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026918 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26919 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26920 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26921 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26922 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26923 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26924 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26925 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26926 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026927 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026928 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026929 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26930 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26931 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26932 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026933 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026934 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026935 {"MM_UL23", NULL, "MultiMedia23 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026936 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026937 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26938 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026939 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026940
26941 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26942 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26943 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26944 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26945 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26946 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26947 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26948 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26949 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26950 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26951 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26952 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26953 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26954 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26955 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26956 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026957 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026958 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26959
26960 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26961 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26962 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26963 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26964 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26965 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26966 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26967 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26968 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26969 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26970 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26971 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26972 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26973 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26974 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26975 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026976 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026977 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26978
26979 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26980 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26981 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26982 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26983 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26984 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26985 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26986 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26987 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26988 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26989 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26990 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26991 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26992 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26993 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26994 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26995 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26996
26997 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26998 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26999 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
27000 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
27001 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
27002 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
27003 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
27004 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
27005 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
27006 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
27007 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
27008 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
27009 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
27010 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27011 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27012 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27013 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
27014
Rohit Kumara5077932017-09-10 22:05:05 +053027015 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
27016 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
27017 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
27018 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
27019 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
27020 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
27021 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
27022 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
27023 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
27024 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
27025 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
27026 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
27027 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
27028 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27029 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27030 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27031 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
27032
Karthikeyan Manic3700752019-03-11 18:33:53 -070027033 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
27034 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
27035 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
27036 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
27037 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
27038 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
27039 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
27040 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
27041 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
27042 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
27043 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
27044 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
27045 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
27046 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27047 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27048 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27049 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
27050
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027051 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
27052 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27053 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27054 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27055 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27056 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
27057
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027058 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
27059 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27060 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27061 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
27062
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027063 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027064 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27065 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027066 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27067 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27068 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27069 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27070 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
27071
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027072 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
27073 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027074 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27075 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27076 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27077 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
27078
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027079 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
27080 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027081 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27082 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27083 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27084 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
27085
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027086 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
27087 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027088 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27089 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27090 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27091 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
27092
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080027093 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
27094 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080027095 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27096 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27097 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27098 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
27099
Karthikeyan Mani57550082018-05-03 18:43:58 -070027100 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
27101 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27102 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
27103 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27104 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27105 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
27106
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027107 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
27108 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27109 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27110 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27111 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027112 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
27113
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027114 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27115 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27116 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27117 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27118 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27119 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
27120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027121 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27122 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027123 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27124 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27125 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27126 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
27127
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027128 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27129 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027130 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27131 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27132 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27133 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
27134
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027135 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27136 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027137 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27138 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27139 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27140 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
27141
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027142 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27143 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027144 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27145 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27146 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27147 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
27148
Rohit Kumara5077932017-09-10 22:05:05 +053027149 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27150 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027151 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27152 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27153 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27154 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
27155
Karthikeyan Manic3700752019-03-11 18:33:53 -070027156 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27157 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27158 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27159 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27160 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27161 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
27162
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027163 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
27164 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27165 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27166 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27167 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27168 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
27169 {"HDMI", NULL, "HDMI_DL_HL"},
27170
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027171 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027172 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27173 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027174 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27175 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27176 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080027177 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027178 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
27179
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027180 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027181 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27182 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027183 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27184 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27185 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27186 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27187 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
27188
27189 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27190 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27191 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27192 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27193 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27194 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
27195
27196 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27197 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27198 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27199 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27200 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27201 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
27202
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027203 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027204 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27205 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027206 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27207 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27208 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27209 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27210 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
27211
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027212 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027213 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27214 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027215 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27216 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27217 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27218 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
27219
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027220 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027221 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27222 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027223 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27224 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27225 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27226 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
27227
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027228 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027229 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27230 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27231 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27232 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
27233 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27234 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27235 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27236 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
27237
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027238 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027239 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27240 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27241 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27242 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
27243 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27244 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27245 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27246 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
27247
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027248 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027249 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27250 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27251 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27252 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
27253 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27254 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27255 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27256 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
27257
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027258 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027259 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27260 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27261 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27262 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
27263 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27264 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27265 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27266 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
27267
Karthikeyan Manic3700752019-03-11 18:33:53 -070027268 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27269 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27270 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27271 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27272 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
27273
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027274 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27275 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
27276
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053027277 {"QUIN_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27278 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_Voice Mixer"},
27279
Kunlei Zhang478379f2019-08-01 17:05:33 +080027280 {"WSA_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027281 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27282 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27283 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
27284
Kunlei Zhang478379f2019-08-01 17:05:33 +080027285 {"RX_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027286 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27287 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27288 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
27289
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053027290 {"RX_CDC_DMA_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
27291 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27292 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27293 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1_Voice Mixer"},
27294
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027295 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27296 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27297 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27298 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027299 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027300 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mani925413e2019-09-10 16:57:28 -070027301 {"VOC_EXT_EC MUX", "PRI_TDM_TX", "PRI_TDM_TX_0"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070027302 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027303 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027304 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
27305 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
27306
27307 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27308 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27309 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27310 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27311 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27312 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27313 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27314 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27315 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27316 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027317 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27318 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027319
27320 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27321 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27322 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27323 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27324
27325 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27326 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27327 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27328 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27329
27330 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27331 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27332 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27333 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27334
27335 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27336 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27337 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27338 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27339
27340 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27341 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27342 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27343 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27344
27345 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27346 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27347 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27348 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27349
27350 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27351 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27352 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27353 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27354
Laxminath Kasam38070be2017-08-17 18:21:59 +053027355 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27356 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27357 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27358 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27359 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27360 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27361 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27362 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27363 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27364 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027365 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27366 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070027367
27368 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27369 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27370 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27371 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27372
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027373 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27374 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27375 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27376 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27377
27378 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27379 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27380 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27381 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27382
27383 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27384 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27385 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27386 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27387
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027388 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27389 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27390 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27391 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27392
27393 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27394 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27395 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27396 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080027397
27398 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27399 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27400 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27401 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27402 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27403 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27404 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27405 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27406
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027407 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
27408 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
27409 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
27410 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
27411 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
27412 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
27413 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
27414 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053027415 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053027416 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027417 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
27418 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
27419 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027420 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
27421 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053027422 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027423
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027424 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
27425 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
27426 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027427 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027428 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
27429 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
27430 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
27431 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
27432 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
27433 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
27434 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
27435 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
27436 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
27437 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
27438 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
27439 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027440 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027441 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027442 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027443 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
27444 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
27445 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
27446 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
27447 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
27448 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027449 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
27450 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027451 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027452 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
27453
27454 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
27455 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027456 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027457 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
27458 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
27459 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
27460 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
27461 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
27462 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
27463 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
27464 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
27465 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
27466 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
27467 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
27468 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
27469 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027470 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027471 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027472 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
27473 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
27474 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
27475 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
27476 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
27477 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027478 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
27479 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070027480 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027481 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
27482
27483 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
27484 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027485 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027486 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
27487 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
27488 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
27489 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
27490 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
27491 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
27492 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
27493 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
27494 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
27495 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
27496 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
27497 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027498 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027499 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027500 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027501 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Kunlei Zhang478379f2019-08-01 17:05:33 +080027502 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_0_Voip", "TX_CDC_DMA_TX_0"},
27503 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_1_Voip", "TX_CDC_DMA_TX_1"},
27504 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_2_Voip", "TX_CDC_DMA_TX_2"},
27505 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_3_Voip", "TX_CDC_DMA_TX_3"},
27506 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_4_Voip", "TX_CDC_DMA_TX_4"},
27507 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_5_Voip", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027508 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
27509
27510 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
27511 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
27512 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
27513 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
27514 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
27515 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
27516 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
27517 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
27518 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
27519 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080027520 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
27521 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027522 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
27523 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
27524 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
27525 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
27526 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053027527 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27528 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
27529 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027530 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27531 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Laxminath Kasame0eca372019-10-03 19:34:45 +053027532 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027533 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027534 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27535 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27536 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27537 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27538 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27539 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27540 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27541 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027542 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27543 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027544 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027545 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027546 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027547 {"LSM1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027548 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
27549
27550 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27551 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27552 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27553 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27554 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27555 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27556 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27557 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027558 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27559 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027560 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027561 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027562 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027563 {"LSM2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027564 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
27565
27566
27567 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27568 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27569 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27570 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27571 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27572 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27573 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27574 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027575 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27576 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027577 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027578 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027579 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027580 {"LSM3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027581 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
27582
27583
27584 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27585 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27586 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27587 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27588 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27589 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27590 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27591 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027592 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27593 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027594 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027595 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027596 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027597 {"LSM4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027598 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
27599
27600 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27601 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27602 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27603 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27604 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27605 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27606 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27607 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027608 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27609 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027610 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027611 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027612 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027613 {"LSM5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027614 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
27615
27616 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27617 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27618 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27619 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27620 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27621 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027622 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27623 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027624 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027625 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027626 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027627 {"LSM6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027628 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
27629
27630 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27631 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27632 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27633 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27634 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27635 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027636 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27637 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027638 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027639 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027640 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027641 {"LSM7 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027642 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
27643
27644 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27645 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27646 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27647 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27648 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27649 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027650 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27651 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027652 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027653 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027654 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027655 {"LSM8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027656 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
27657
27658
27659 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
27660 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
27661 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
27662 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
27663 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
27664 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
27665 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
27666 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
27667 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
27668 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
27669 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027670 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027671 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027672 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
27673 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
27674 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
27675 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
27676 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
27677 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
27678
27679 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
27680 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
27681 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
27682 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
27683 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
27684 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
27685 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
27686 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
27687 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
27688 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
27689 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
27690 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080027691 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
27692 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027693 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027694 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027695 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027696 {"MI2S_RX", NULL, "MI2S_DL_HL"},
27697 {"MI2S_UL_HL", NULL, "MI2S_TX"},
27698 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
27699 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
27700
27701 /* connect to INT4_MI2S_DL_HL since same pcm_id */
27702 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27703 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
27704 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27705 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
27706 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
27707 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
27708 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
27709 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
27710 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
27711 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
27712
27713 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
27714 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027715 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
27716 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027717 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
27718 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027719 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27720 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
27721 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27722 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
27723 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
27724 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
27725 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
27726 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
27727 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
27728 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
27729
27730 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
27731 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
27732 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
27733 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
27734 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
27735 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
27736 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
27737 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
27738 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
27739 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
27740 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
27741 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
27742 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
27743 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
27744 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
27745 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027746 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027747 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
27748 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
27749 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
27750 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027751 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027752 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
27753 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
27754 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
27755 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
27756 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
27757 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
27758 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
27759 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027760 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027761 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
27762 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
27763 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
27764 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027765 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027766 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
27767 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
27768 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
27769 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027770 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027771 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
27772 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
27773 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
27774 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080027775 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027776 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
27777 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
27778 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
27779 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
27780 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
27781 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
27782 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
27783 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027784
27785 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27786 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27787 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27788 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27789 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27790 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27791 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27792 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27793 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27794 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27795 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27796 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27797 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27798 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27799 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27800 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027801 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27802 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27803 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27804 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027805 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27806 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27807 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27808 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027809 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
27810
27811 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27812 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27813 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27814 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27815 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27816 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27817 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27818 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27819 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27820 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27821 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27822 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27823 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27824 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27825 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27826 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027827 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27828 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27829 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27830 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027831 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27832 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27833 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27834 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027835 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
27836
27837 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27838 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27839 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27840 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27841 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27842 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27843 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27844 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27845 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27846 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27847 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27848 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27849 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27850 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27851 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27852 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027853 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27854 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27855 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27856 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027857 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27858 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27859 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27860 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027861 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
27862
27863 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27864 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27865 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27866 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27867 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27868 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27869 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27870 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27871 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27872 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27873 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27874 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27875 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27876 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27877 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27878 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027879 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27880 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27881 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27882 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027883 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27884 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27885 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27886 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027887 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27888
27889 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27890 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27891 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27892 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27893 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27894 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27895 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27896 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27897 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27898 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27899 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27900 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27901 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27902 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27903 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27904 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027905 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27906 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27907 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27908 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027909 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27910 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27911 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27912 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027913 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27914
27915 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27916 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27917 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27918 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27919 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27920 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27921 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27922 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27923 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27924 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27925 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27926 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27927 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27928 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27929 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27930 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027931 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27932 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27933 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27934 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027935 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27936 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27937 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27938 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027939 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27940
27941 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27942 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27943 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27944 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27945 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27946 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27947 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27948 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27949 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27950 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27951 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27952 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27953 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27954 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27955 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27956 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027957 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27958 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27959 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27960 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027961 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27962 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27963 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27964 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027965 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27966
27967 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27968 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27969 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27970 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27971 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27972 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27973 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27974 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27975 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27976 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27977 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27978 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27979 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27980 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27981 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27982 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027983 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27984 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27985 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27986 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027987 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27988 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27989 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27990 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027991 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27992
Derek Chenfdcc0982018-10-02 15:14:03 -070027993 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27994 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27995
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027996 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27997 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27998 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27999 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28000 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28001 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28002 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28003 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28004 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28005 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28006 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28007 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28008 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28009 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28010 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28011 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028012 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28013 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28014 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28015 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028016 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28017 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28018 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28019 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028020 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
28021
28022 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28023 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28024 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28025 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28026 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28027 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28028 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28029 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28030 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28031 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28032 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28033 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28034 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28035 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28036 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28037 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028038 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28039 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28040 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28041 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028042 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28043 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28044 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28045 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028046 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
28047
28048 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28049 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28050 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28051 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28052 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28053 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28054 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28055 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28056 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28057 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28058 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28059 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28060 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28061 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28062 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28063 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028064 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28065 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28066 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28067 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028068 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28069 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28070 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28071 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028072 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
28073
28074 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28075 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28076 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28077 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28078 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28079 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28080 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28081 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28082 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28083 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28084 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28085 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28086 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28087 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28088 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28089 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028090 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28091 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28092 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28093 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028094 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28095 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28096 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28097 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028098 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
28099
28100 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28101 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28102 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28103 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28104 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28105 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28106 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28107 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28108 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28109 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28110 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28111 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28112 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28113 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28114 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28115 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028116 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28117 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28118 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28119 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028120 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28121 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28122 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28123 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028124 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
28125
28126 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28127 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28128 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28129 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28130 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28131 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28132 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28133 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28134 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28135 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28136 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28137 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28138 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28139 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28140 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28141 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028142 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28143 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28144 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28145 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028146 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28147 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28148 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28149 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028150 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
28151
28152 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28153 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28154 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28155 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28156 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28157 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28158 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28159 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28160 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28161 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28162 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28163 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28164 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28165 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28166 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28167 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028168 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28169 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28170 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28171 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028172 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28173 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28174 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28175 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028176 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
28177
28178 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28179 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28180 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28181 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28182 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28183 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28184 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28185 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28186 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28187 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28188 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28189 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28190 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28191 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28192 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28193 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028194 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28195 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28196 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28197 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028198 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28199 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28200 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28201 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028202 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
28203
Derek Chenb9048cb2019-03-07 14:54:13 -050028204 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070028205 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028206 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
28207
Rohit Kumara5077932017-09-10 22:05:05 +053028208 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28209 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28210 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28211 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28212 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28213 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28214 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28215 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28216 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28217 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28218 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28219 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28220 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28221 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28222 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28223 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28224 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28225 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28226 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28227 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028228 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28229 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28230 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28231 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028232 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028233
28234 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28235 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28236 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28237 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28238 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28239 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28240 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28241 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28242 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28243 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28244 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28245 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28246 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28247 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28248 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28249 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28250 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28251 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28252 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28253 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028254 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28255 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28256 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28257 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028258 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028259
28260 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28261 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28262 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28263 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28264 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28265 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28266 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28267 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28268 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28269 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28270 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28271 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28272 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28273 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28274 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28275 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28276 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28277 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28278 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28279 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028280 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28281 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28282 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28283 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028284 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028285
28286 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28287 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28288 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28289 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28290 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28291 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28292 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28293 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28294 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28295 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28296 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28297 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28298 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28299 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28300 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28301 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28302 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28303 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28304 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28305 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028306 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28307 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28308 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28309 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028310 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070028311
28312 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
28313 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080028314 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
28315 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028316
Karthikeyan Manic3700752019-03-11 18:33:53 -070028317 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28318 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28319 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28320 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28321 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28322 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28323 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28324 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28325 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28326 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28327 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28328 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28329 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28330 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28331 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28332 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28333 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28334 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28335 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28336 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28337 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
28338
28339 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28340 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28341 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28342 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28343 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28344 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28345 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28346 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28347 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28348 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28349 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28350 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28351 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28352 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28353 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28354 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28355 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28356 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28357 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28358 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28359 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
28360
28361 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28362 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28363 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28364 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28365 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28366 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28367 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28368 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28369 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28370 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28371 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28372 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28373 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28374 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28375 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28376 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28377 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28378 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28379 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28380 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28381 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
28382
28383 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28384 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28385 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28386 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28387 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28388 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28389 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28390 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28391 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28392 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28393 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28394 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28395 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28396 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28397 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28398 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28399 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28400 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28401 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28402 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28403 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
28404
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028405 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28406 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28407 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28408 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028409 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028410 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028411 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28412 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28413 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28414 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028415 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028416 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28417 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
28418
28419 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28420 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28421 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28422 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028423 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028424 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028425 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28426 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28427 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028428 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028429 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28430 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28431 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
28432
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028433 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28434 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080028435 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028436 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028437 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
28438
28439 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28440 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028441 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028442 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028443
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053028444 {"RX_CDC_DMA_RX_1 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28445 {"RX_CDC_DMA_RX_1 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28446 {"RX_CDC_DMA_RX_1 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28447 {"RX_CDC_DMA_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28448 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Port Mixer"},
28449
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028450 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28451 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28452 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28453 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28454 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028455 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028456 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28457 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28458 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28459 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028460 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028461 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028462 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28463 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28464 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28465 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28466 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028467 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028468 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028469 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28470 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
28471 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28472 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28473 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
28474 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
28475 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
28476 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
28477 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
28478 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
28479
28480
28481 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28482 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28483 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28484 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28485 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053028486 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028487 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028488 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
28489
28490 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28491 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28492 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028493 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028494 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
28495
28496 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28497 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28498 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28499 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
28500
28501 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28502 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
28503 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28504 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
28505
Rohit Kumara5077932017-09-10 22:05:05 +053028506 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28507 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
28508 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28509 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
28510
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028511 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28512 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28513 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28514 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28515 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28516 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28517 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28518 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028519 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028520 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028521 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
28522 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28523 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28524 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28525 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28526 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28527 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28528 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28529 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28530 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28531 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
28532
28533 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28534 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28535 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28536 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28537 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28538 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28539 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28540 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28541 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28542 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28543 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28544 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
28545
28546 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28547 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28548 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28549 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28550 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28551 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28552 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28553 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28554 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28555 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28556 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070028557 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028558 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
28559
kunleizdf5a00a2017-11-27 15:27:36 +080028560 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28561 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028562 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028563
28564 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28565 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028566 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028567
28568 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28569 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028570 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
28571
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028572 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
28573 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028574 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28575 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28576 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28577 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
28578
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028579 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
28580 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028581 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28582 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28583 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28584 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
28585
28586 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28587 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28588 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28589 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
28590 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28591 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28592 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
28593 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
28594 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28595 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
28596 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
28597 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
28598 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
28599
28600 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28601 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28602 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28603 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28604 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028605 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028606 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28607 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28608 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28609 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28610 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28611 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28612 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28613 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
28614
28615 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28616 {"HDMI", NULL, "HDMI_RX Port Mixer"},
28617
28618 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28619 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
28620
Karthikeyan Mani57550082018-05-03 18:43:58 -070028621 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
28622 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
28623
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028624 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28625 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
28626
28627 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28628 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28629 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
28630
28631 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28632 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28633 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28634 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028635 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028636 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028637 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28638 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28639 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28640 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028641 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028642 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
28643
28644 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28645 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28646 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28647 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028648 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028649 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028650 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28651 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28652 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028653 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028654 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
28655
28656 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28657 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28658 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28659 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028660 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028661 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028662 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28663 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28664 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
28665
28666 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28667 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28668 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28669 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028670 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028671 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028672 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28673 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28674 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28675 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28676 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
28677
Rohit Kumara5077932017-09-10 22:05:05 +053028678 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28679 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28680 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28681 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28682 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028683 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028684 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28685 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28686 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
28687
Karthikeyan Manic3700752019-03-11 18:33:53 -070028688 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28689 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28690 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28691 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28692 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
28693 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28694 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28695 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
28696
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028697 /* Backend Enablement */
28698
28699 {"BE_OUT", NULL, "PRI_I2S_RX"},
28700 {"BE_OUT", NULL, "SEC_I2S_RX"},
28701 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
28702 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
28703 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
28704 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28705 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
28706 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
28707 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
28708 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
28709 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028710 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028711 {"BE_OUT", NULL, "USB_AUDIO_RX"},
28712 {"BE_OUT", NULL, "HDMI"},
28713 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070028714 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028715 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
28716 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028717 {"BE_OUT", NULL, "MI2S_RX"},
28718 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
28719 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028720 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028721 {"BE_OUT", NULL, "TERT_MI2S_RX"},
28722 {"BE_OUT", NULL, "SEC_MI2S_RX"},
28723 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
28724 {"BE_OUT", NULL, "PRI_MI2S_RX"},
28725 {"BE_OUT", NULL, "INT0_MI2S_RX"},
28726 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028727 {"BE_OUT", NULL, "INT2_MI2S_RX"},
28728 {"BE_OUT", NULL, "INT3_MI2S_RX"},
28729 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028730 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28731 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
28732 {"BE_OUT", NULL, "INT_FM_RX"},
28733 {"BE_OUT", NULL, "PCM_RX"},
28734 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28735 {"BE_OUT", NULL, "AUX_PCM_RX"},
28736 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
28737 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
28738 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028739 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028740 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028741 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28742 {"BE_OUT", NULL, "INT_FM_RX"},
28743 {"BE_OUT", NULL, "PCM_RX"},
28744 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28745 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
28746 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
28747 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
28748 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
28749 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
28750 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
28751 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
28752 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
28753 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
28754 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028755 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028756 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
28757 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
28758 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
28759 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
28760 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
28761 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
28762 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
28763 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
28764 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028765 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053028766 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
28767 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
28768 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
28769 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080028770 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028771 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
28772 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
28773 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
28774 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028775 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
28776 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028777 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
28778 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
28779 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
28780 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
28781 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
28782 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
28783 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
28784 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028785
28786 {"PRI_I2S_TX", NULL, "BE_IN"},
28787 {"MI2S_TX", NULL, "BE_IN"},
28788 {"QUAT_MI2S_TX", NULL, "BE_IN"},
28789 {"QUIN_MI2S_TX", NULL, "BE_IN"},
28790 {"PRI_MI2S_TX", NULL, "BE_IN"},
28791 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028792 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028793 {"INT2_MI2S_TX", NULL, "BE_IN"},
28794 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028795 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028796 {"INT5_MI2S_TX", NULL, "BE_IN"},
28797 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028798 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028799 {"SLIMBUS_0_TX", NULL, "BE_IN" },
28800 {"SLIMBUS_1_TX", NULL, "BE_IN" },
28801 {"SLIMBUS_3_TX", NULL, "BE_IN" },
28802 {"SLIMBUS_4_TX", NULL, "BE_IN" },
28803 {"SLIMBUS_5_TX", NULL, "BE_IN" },
28804 {"SLIMBUS_6_TX", NULL, "BE_IN" },
28805 {"SLIMBUS_7_TX", NULL, "BE_IN" },
28806 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053028807 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028808 {"USB_AUDIO_TX", NULL, "BE_IN" },
28809 {"INT_BT_SCO_TX", NULL, "BE_IN"},
28810 {"INT_FM_TX", NULL, "BE_IN"},
28811 {"PCM_TX", NULL, "BE_IN"},
28812 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28813 {"BE_OUT", NULL, "STUB_RX"},
28814 {"STUB_TX", NULL, "BE_IN"},
28815 {"STUB_1_TX", NULL, "BE_IN"},
28816 {"BE_OUT", NULL, "AUX_PCM_RX"},
28817 {"AUX_PCM_TX", NULL, "BE_IN"},
28818 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
28819 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
28820 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028821 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028822 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028823 {"INCALL_RECORD_TX", NULL, "BE_IN"},
28824 {"INCALL_RECORD_RX", NULL, "BE_IN"},
28825 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
28826 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028827 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
28828 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028829 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
28830 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28831 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28832 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
28833 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028834 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
28835 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028836 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
28837 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
28838 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
28839 {"PRI_TDM_TX_0", NULL, "BE_IN"},
28840 {"PRI_TDM_TX_1", NULL, "BE_IN"},
28841 {"PRI_TDM_TX_2", NULL, "BE_IN"},
28842 {"PRI_TDM_TX_3", NULL, "BE_IN"},
28843 {"SEC_TDM_TX_0", NULL, "BE_IN"},
28844 {"SEC_TDM_TX_1", NULL, "BE_IN"},
28845 {"SEC_TDM_TX_2", NULL, "BE_IN"},
28846 {"SEC_TDM_TX_3", NULL, "BE_IN"},
28847 {"TERT_TDM_TX_0", NULL, "BE_IN"},
28848 {"TERT_TDM_TX_1", NULL, "BE_IN"},
28849 {"TERT_TDM_TX_2", NULL, "BE_IN"},
28850 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028851 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028852 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
28853 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
28854 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
28855 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028856 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053028857 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028858 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
28859 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
28860 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
28861 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080028862 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028863 {"SEN_TDM_TX_0", NULL, "BE_IN"},
28864 {"SEN_TDM_TX_1", NULL, "BE_IN"},
28865 {"SEN_TDM_TX_2", NULL, "BE_IN"},
28866 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028867 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
28868 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
28869 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
28870 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
28871 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080028872 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028873 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
28874 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
28875 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
28876 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
28877 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
28878 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028879 {"PRI_SPDIF_TX", NULL, "BE_IN"},
28880 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028881};
28882
28883static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
28884 struct snd_pcm_hw_params *params)
28885{
28886 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28887 unsigned int be_id = rtd->dai_link->id;
28888
28889 if (be_id >= MSM_BACKEND_DAI_MAX) {
28890 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28891 return -EINVAL;
28892 }
28893
28894 mutex_lock(&routing_lock);
28895 msm_bedais[be_id].sample_rate = params_rate(params);
28896 msm_bedais[be_id].channel = params_channels(params);
28897 msm_bedais[be_id].format = params_format(params);
28898 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28899 __func__, msm_bedais[be_id].sample_rate,
28900 msm_bedais[be_id].format, be_id);
28901 mutex_unlock(&routing_lock);
28902 return 0;
28903}
28904
28905static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28906{
28907 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28908 unsigned int be_id = rtd->dai_link->id;
28909 int i, session_type, path_type, topology;
28910 struct msm_pcm_routing_bdai_data *bedai;
28911 struct msm_pcm_routing_fdai_data *fdai;
28912
28913 pr_debug("%s: substream->pcm->id:%s\n",
28914 __func__, substream->pcm->id);
28915
28916 if (be_id >= MSM_BACKEND_DAI_MAX) {
28917 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28918 return -EINVAL;
28919 }
28920
28921 bedai = &msm_bedais[be_id];
28922 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28923 0 : 1);
28924 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28925 path_type = ADM_PATH_PLAYBACK;
28926 else
28927 path_type = ADM_PATH_LIVE_REC;
28928
28929 mutex_lock(&routing_lock);
28930 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28931 if (!is_mm_lsm_fe_id(i))
28932 continue;
28933 fdai = &fe_dai_map[i][session_type];
28934 if (fdai->strm_id != INVALID_SESSION) {
28935 int idx;
28936 int port_id;
28937 unsigned long copp =
28938 session_copp_map[i][session_type][be_id];
28939 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28940 if (test_bit(idx, &copp))
28941 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028942
28943 if (idx >= MAX_COPPS_PER_PORT) {
28944 pr_debug("%s: copp idx is invalid, exiting\n",
28945 __func__);
28946 continue;
28947 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028948 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028949 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028950 topology = adm_get_topology_for_port_copp_idx(port_id,
28951 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028952 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028953 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028954 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28955 __func__, copp, i, session_type, be_id,
28956 topology);
28957 clear_bit(idx,
28958 &session_copp_map[i][session_type][be_id]);
28959 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028960 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028961 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028962 topology);
28963 }
28964 }
28965
28966 bedai->active = 0;
28967 bedai->sample_rate = 0;
28968 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028969 mutex_unlock(&routing_lock);
28970
28971 return 0;
28972}
28973
28974static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28975{
28976 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28977 unsigned int be_id = rtd->dai_link->id;
28978 int i, path_type, topology;
28979 int session_type = INVALID_SESSION;
28980 struct msm_pcm_routing_bdai_data *bedai;
28981 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028982 uint16_t bits_per_sample = 16, voc_path_type, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028983 struct msm_pcm_routing_fdai_data *fdai;
28984 u32 session_id;
28985 struct media_format_info voc_be_media_format;
28986 bool is_lsm;
28987
28988 pr_debug("%s: substream->pcm->id:%s\n",
28989 __func__, substream->pcm->id);
28990
28991 if (be_id >= MSM_BACKEND_DAI_MAX) {
28992 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28993 return -EINVAL;
28994 }
28995
28996 bedai = &msm_bedais[be_id];
28997
28998 mutex_lock(&routing_lock);
28999 if (bedai->active == 1)
29000 goto done; /* Ignore prepare if back-end already active */
29001
29002 /* AFE port is not active at this point. However, still
29003 * go ahead setting active flag under the notion that
29004 * QDSP6 is able to handle ADM starting before AFE port
29005 * is started.
29006 */
29007 bedai->active = 1;
29008
29009 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
29010 if (!(is_mm_lsm_fe_id(i) &&
29011 route_check_fe_id_adm_support(i)))
29012 continue;
29013
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029014 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
29015 SESSION_TYPE_RX : SESSION_TYPE_TX;
29016 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029017 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029018 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029019 path_type = ADM_PATH_COMPRESSED_RX;
29020 else
29021 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029022 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029023 if ((fdai->passthr_mode != LEGACY_PCM) &&
29024 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020029025 path_type = ADM_PATH_COMPRESSED_TX;
29026 else
29027 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029028 }
29029
29030 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
29031 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029032 if (fdai->strm_id != INVALID_SESSION) {
29033 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053029034 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029035
29036 if (session_type == SESSION_TYPE_TX &&
29037 fdai->be_srate &&
29038 (fdai->be_srate != bedai->sample_rate)) {
29039 pr_debug("%s: flush strm %d diff BE rates\n",
29040 __func__,
29041 fdai->strm_id);
29042
29043 if (fdai->event_info.event_func)
29044 fdai->event_info.event_func(
29045 MSM_PCM_RT_EVT_BUF_RECFG,
29046 fdai->event_info.priv_data);
29047 fdai->be_srate = 0; /* might not need it */
29048 }
29049 bits_per_sample = msm_routing_get_bit_width(
29050 bedai->format);
29051
29052 app_type =
29053 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
29054 if (app_type && is_lsm) {
29055 app_type_idx =
29056 msm_pcm_routing_get_lsm_app_type_idx(app_type);
29057 sample_rate =
29058 fe_dai_app_type_cfg[i][session_type][be_id]
29059 .sample_rate;
29060 bits_per_sample =
29061 lsm_app_type_cfg[app_type_idx].bit_width;
29062 } else if (app_type) {
29063 app_type_idx =
29064 msm_pcm_routing_get_app_type_idx(app_type);
29065 sample_rate =
29066 fe_dai_app_type_cfg[i][session_type]
29067 [be_id].sample_rate;
29068 bits_per_sample =
29069 app_type_cfg[app_type_idx].bit_width;
29070 } else
29071 sample_rate = bedai->sample_rate;
29072 /*
29073 * check if ADM needs to be configured with different
29074 * channel mapping than backend
29075 */
29076 if (!bedai->adm_override_ch)
29077 channels = bedai->channel;
29078 else
29079 channels = bedai->adm_override_ch;
29080 acdb_dev_id =
29081 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
29082 topology = msm_routing_get_adm_topology(i, session_type,
29083 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020029084
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029085 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
29086 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
29087 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020029088 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
29089
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053029090 be_bit_width = msm_routing_get_bit_width(
29091 bedai->format);
29092
29093 if (hifi_filter_enabled && (bedai->sample_rate == 384000
29094 || bedai->sample_rate == 352800) &&
29095 be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029096 bits_per_sample = msm_routing_get_bit_width(
29097 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +053029098 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029099 sample_rate, channels, topology,
29100 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053029101 app_type, acdb_dev_id,
29102 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029103 if ((copp_idx < 0) ||
29104 (copp_idx >= MAX_COPPS_PER_PORT)) {
29105 pr_err("%s: adm open failed\n", __func__);
29106 mutex_unlock(&routing_lock);
29107 return -EINVAL;
29108 }
29109 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
29110 __func__, i, session_type, be_id);
29111 set_bit(copp_idx,
29112 &session_copp_map[i][session_type][be_id]);
29113
29114 if (msm_is_resample_needed(
29115 sample_rate,
29116 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053029117 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029118 bedai->sample_rate);
29119
29120 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029121 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029122 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029123 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053029124 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029125 topology, channels);
29126 }
29127 }
29128
29129 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
29130 session_id = msm_pcm_routing_get_voc_sessionid(i);
29131 if (session_id) {
29132 pr_debug("%s voice session_id: 0x%x\n", __func__,
29133 session_id);
29134
29135 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
29136 voc_path_type = RX_PATH;
29137 else
29138 voc_path_type = TX_PATH;
29139
29140 voc_set_route_flag(session_id, voc_path_type, 1);
29141
29142 memset(&voc_be_media_format, 0,
29143 sizeof(struct media_format_info));
29144
29145 voc_be_media_format.port_id = bedai->port_id;
29146 voc_be_media_format.num_channels = bedai->channel;
29147 voc_be_media_format.sample_rate = bedai->sample_rate;
29148 voc_be_media_format.bits_per_sample = bedai->format;
29149 /* Defaulting this to 1 for voice call usecases */
29150 voc_be_media_format.channel_mapping[0] = 1;
29151
29152 voc_set_device_config(session_id, voc_path_type,
29153 &voc_be_media_format);
29154
29155 if (voc_get_route_flag(session_id, RX_PATH) &&
29156 voc_get_route_flag(session_id, TX_PATH))
29157 voc_enable_device(session_id);
29158 }
29159 }
29160
29161 /* Check if backend is an external ec ref port and set as needed */
29162 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
29163
29164 memset(&voc_be_media_format, 0,
29165 sizeof(struct media_format_info));
29166
29167 /* Get format info for ec ref port from msm_bedais[] */
29168 voc_be_media_format.port_id = bedai->port_id;
29169 voc_be_media_format.num_channels = bedai->channel;
29170 voc_be_media_format.bits_per_sample = bedai->format;
29171 voc_be_media_format.sample_rate = bedai->sample_rate;
29172 /* Defaulting this to 1 for voice call usecases */
29173 voc_be_media_format.channel_mapping[0] = 1;
29174 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
29175 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
29176 __func__, voc_be_media_format.port_id,
29177 voc_be_media_format.num_channels,
29178 voc_be_media_format.bits_per_sample,
29179 voc_be_media_format.sample_rate);
29180 }
29181
29182done:
29183 mutex_unlock(&routing_lock);
29184
29185 return 0;
29186}
29187
29188static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
29189 int fe_id)
29190{
29191 int index, topo_id, be_idx;
29192 unsigned long pp_config = 0;
29193 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029194 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029195 bool compr_passthr_mode = true;
29196
29197 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
29198
29199 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
29200 pr_err("%s: Device pp params on invalid port %d\n",
29201 __func__, port_id);
29202 return -EINVAL;
29203 }
29204
29205 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
29206 if (port_id == msm_bedais[be_idx].port_id)
29207 break;
29208 }
29209
29210 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29211 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
29212 return -EINVAL;
29213 }
29214
29215 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
29216 if (msm_bedais_pp_params[index].port_id == port_id)
29217 break;
29218 }
29219 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
29220 pr_err("%s: Invalid backend pp params index %d\n",
29221 __func__, index);
29222 return -EINVAL;
29223 }
29224
29225 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
29226 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
29227 pr_err("%s: Invalid passthrough topology 0x%x\n",
29228 __func__, topo_id);
29229 return -EINVAL;
29230 }
29231
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029232 session_type =
29233 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
29234 SESSION_TYPE_RX : SESSION_TYPE_TX;
29235
29236 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
29237 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029238 compr_passthr_mode = false;
29239
29240 pp_config = msm_bedais_pp_params[index].pp_params_config;
29241 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
29242 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
29243 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
29244 mute_on = msm_bedais_pp_params[index].mute_on;
29245 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29246 adm_send_compressed_device_mute(port_id,
29247 copp_idx,
29248 mute_on);
29249 }
29250 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
29251 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
29252 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
29253 &pp_config);
29254 latency = msm_bedais_pp_params[index].latency;
29255 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29256 adm_send_compressed_device_latency(port_id,
29257 copp_idx,
29258 latency);
29259 }
29260 return 0;
29261}
29262
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029263static uint32_t msm_routing_get_topology(size_t data_size, void *data)
29264{
29265 uint32_t topology = NULL_COPP_TOPOLOGY;
29266 void *cal_info = NULL;
29267 uint32_t size = 0;
29268
29269 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053029270 if (data_size < sizeof(struct audio_cal_type_basic) +
29271 sizeof(struct audio_cal_info_adm_top)) {
29272 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
29273 goto done;
29274 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029275 size = data_size - sizeof(struct audio_cal_type_basic);
29276 cal_info = kzalloc(size, GFP_KERNEL);
29277
29278 if (!cal_info)
29279 goto done;
29280
29281 memcpy(cal_info,
29282 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
29283
29284 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
29285 kfree(cal_info);
29286 cal_info = NULL;
29287
29288done:
29289 pr_debug("%s: Using topology %d\n", __func__, topology);
29290
29291 return topology;
29292}
29293
29294static void msm_routing_load_topology(size_t data_size, void *data)
29295{
29296 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029297 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029298
29299 topology_id = msm_routing_get_topology(data_size, data);
29300 if (topology_id != NULL_COPP_TOPOLOGY)
29301 ret = q6core_load_unload_topo_modules(topology_id,
29302 CORE_LOAD_TOPOLOGY);
29303 if (ret < 0)
29304 pr_debug("%s %d load topology failed\n",
29305 __func__, topology_id);
29306
29307}
29308
29309static void msm_routing_unload_topology(uint32_t topology_id)
29310{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029311 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029312
29313 if (topology_id != NULL_COPP_TOPOLOGY)
29314 ret = q6core_load_unload_topo_modules(topology_id,
29315 CORE_UNLOAD_TOPOLOGY);
29316 if (ret < 0)
29317 pr_debug("%s %d unload topology failed\n",
29318 __func__, topology_id);
29319
29320}
29321
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029322static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29323 struct snd_ctl_elem_value *ucontrol)
29324{
29325 int pp_id = ucontrol->value.integer.value[0];
29326 int port_id = 0;
29327 int index, be_idx, i, topo_id, idx;
29328 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029329 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029330 bool compr_passthr_mode = true;
29331
29332 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
29333
29334 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
29335 port_id = msm_bedais[be_idx].port_id;
29336 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
29337 break;
29338 }
29339
29340 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29341 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
29342 return -EINVAL;
29343 }
29344
29345 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
29346 if (msm_bedais_pp_params[index].port_id == port_id)
29347 break;
29348 }
29349 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
29350 pr_err("%s: Invalid pp params backend index %d\n",
29351 __func__, index);
29352 return -EINVAL;
29353 }
29354
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029355 session_type =
29356 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
29357 SESSION_TYPE_RX : SESSION_TYPE_TX;
29358
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029359 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
29360 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029361 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
29362 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029363 compr_passthr_mode = false;
29364
29365 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29366 unsigned long copp =
29367 session_copp_map[i]
29368 [SESSION_TYPE_RX][be_idx];
29369 if (!test_bit(idx, &copp))
29370 continue;
29371 topo_id = adm_get_topology_for_port_copp_idx(port_id,
29372 idx);
29373 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
29374 continue;
29375 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
29376 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029377 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029378 switch (pp_id) {
29379 case ADM_PP_PARAM_MUTE_ID:
29380 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
29381 mute = ucontrol->value.integer.value[1] ? true : false;
29382 msm_bedais_pp_params[index].mute_on = mute;
29383 set_bit(ADM_PP_PARAM_MUTE_BIT,
29384 &msm_bedais_pp_params[index].pp_params_config);
29385 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29386 adm_send_compressed_device_mute(port_id,
29387 idx, mute);
29388 break;
29389 case ADM_PP_PARAM_LATENCY_ID:
29390 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
29391 msm_bedais_pp_params[index].latency =
29392 ucontrol->value.integer.value[1];
29393 set_bit(ADM_PP_PARAM_LATENCY_BIT,
29394 &msm_bedais_pp_params[index].pp_params_config);
29395 latency = msm_bedais_pp_params[index].latency =
29396 ucontrol->value.integer.value[1];
29397 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29398 adm_send_compressed_device_latency(port_id,
29399 idx, latency);
29400 break;
29401 default:
29402 pr_info("%s, device pp param %d not supported\n",
29403 __func__, pp_id);
29404 break;
29405 }
29406 }
29407 }
29408 return 0;
29409}
29410
29411static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29412 struct snd_ctl_elem_value *ucontrol)
29413{
29414 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
29415 return 0;
29416}
29417
29418static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
29419 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
29420 0, 3, msm_routing_get_device_pp_params_mixer,
29421 msm_routing_put_device_pp_params_mixer),
29422};
29423
29424static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
29425 struct snd_ctl_elem_value *ucontrol)
29426{
29427 ucontrol->value.integer.value[0] =
29428 core_get_license_status(ASM_MEDIA_FMT_APTX);
29429 pr_debug("%s: status %ld\n", __func__,
29430 ucontrol->value.integer.value[0]);
29431 return 0;
29432}
29433
29434static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
29435 struct snd_ctl_elem_value *ucontrol)
29436{
29437 int32_t status = 0;
29438
29439 status = core_set_license(ucontrol->value.integer.value[0],
29440 APTX_CLASSIC_DEC_LICENSE_ID);
29441 pr_debug("%s: status %d\n", __func__, status);
29442 return status;
29443}
29444
29445static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
29446 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
29447 0xFFFF, 0, msm_aptx_dec_license_control_get,
29448 msm_aptx_dec_license_control_put),
29449};
29450
Rohit kumar63ffaa72019-02-01 18:05:33 +053029451static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
29452 struct snd_ctl_elem_value *ucontrol)
29453{
29454 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
29455 uint32_t be_idx = ucontrol->value.integer.value[0];
29456 int i;
29457
Rohit kumar2b4cbd82019-04-30 13:31:25 +053029458 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29459 pr_err("%s: Invalid Backend index %d\n", __func__, be_idx);
29460 return -EINVAL;
29461 }
29462
Rohit kumar63ffaa72019-02-01 18:05:33 +053029463 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
29464 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
29465 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
29466 pr_err("%s: Invalid channel map %d\n",
29467 __func__, channel_map[i]);
29468 return -EINVAL;
29469 }
29470 }
29471 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
29472
29473 return 0;
29474}
29475
29476static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
29477 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
29478 MSM_BACKEND_DAI_MAX, 0,
29479 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
29480 msm_routing_put_port_chmap_mixer),
29481};
29482
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029483static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
29484 struct snd_ctl_elem_info *uinfo)
29485{
29486 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
29487 uinfo->count = sizeof(be_dai_name_table);
29488 return 0;
29489}
29490
29491static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
29492 unsigned int __user *bytes,
29493 unsigned int size)
29494{
29495 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029496 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029497
29498 if (size < sizeof(be_dai_name_table)) {
29499 pr_err("%s: invalid size %d requested, returning\n",
29500 __func__, size);
29501 ret = -EINVAL;
29502 goto done;
29503 }
29504
29505 /*
29506 * Fill be_dai_name_table from msm_bedais table to reduce code changes
29507 * needed when adding new backends
29508 */
29509 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29510 be_dai_name_table[i].be_id = i;
29511 strlcpy(be_dai_name_table[i].be_name,
29512 msm_bedais[i].name,
29513 LPASS_BE_NAME_MAX_LENGTH);
29514 }
29515
29516 ret = copy_to_user(bytes, &be_dai_name_table,
29517 sizeof(be_dai_name_table));
29518 if (ret) {
29519 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
29520 ret = -EFAULT;
29521 }
29522
29523done:
29524 return ret;
29525}
29526
29527static const struct snd_kcontrol_new
29528 msm_routing_be_dai_name_table_mixer_controls[] = {
29529 {
29530 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
29531 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
29532 .info = msm_routing_be_dai_name_table_info,
29533 .name = "Backend DAI Name Table",
29534 .tlv.c = snd_soc_bytes_tlv_callback,
29535 .private_value = (unsigned long) &(struct soc_bytes_ext) {
29536 .max = sizeof(be_dai_name_table),
29537 .get = msm_routing_be_dai_name_table_tlv_get,
29538 }
29539 },
29540};
29541
29542static int msm_routing_stereo_channel_reverse_control_get(
29543 struct snd_kcontrol *kcontrol,
29544 struct snd_ctl_elem_value *ucontrol)
29545{
29546 ucontrol->value.integer.value[0] = swap_ch;
29547 pr_debug("%s: Swap channel value: %ld\n", __func__,
29548 ucontrol->value.integer.value[0]);
29549 return 0;
29550}
29551
29552static int msm_routing_stereo_channel_reverse_control_put(
29553 struct snd_kcontrol *kcontrol,
29554 struct snd_ctl_elem_value *ucontrol)
29555{
29556 int i, idx, be_index, port_id;
29557 int ret = 0;
29558 unsigned long copp;
29559
29560 pr_debug("%s Swap channel value:%ld\n", __func__,
29561 ucontrol->value.integer.value[0]);
29562
29563 swap_ch = ucontrol->value.integer.value[0];
29564
29565 mutex_lock(&routing_lock);
29566 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
29567 port_id = msm_bedais[be_index].port_id;
29568 if (!msm_bedais[be_index].active)
29569 continue;
29570
29571 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
29572 MSM_FRONTEND_DAI_MM_SIZE) {
29573 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
29574 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29575 if (!test_bit(idx, &copp))
29576 continue;
29577
29578 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
29579 __func__, port_id, idx);
29580 ret = adm_swap_speaker_channels(
29581 port_id, idx,
29582 msm_bedais[be_index].sample_rate,
29583 swap_ch);
29584 if (ret) {
29585 pr_err("%s:Swap_channel failed, err=%d\n",
29586 __func__, ret);
29587 goto done;
29588 }
29589 }
29590 }
29591 }
29592done:
29593 mutex_unlock(&routing_lock);
29594 return ret;
29595}
29596
29597static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
29598 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
29599 1, 0, msm_routing_stereo_channel_reverse_control_get,
29600 msm_routing_stereo_channel_reverse_control_put),
29601};
29602
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029603static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
29604 struct snd_ctl_elem_info *uinfo)
29605{
29606 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
29607 uinfo->count = 1;
29608 return 0;
29609}
29610
29611static int msm_routing_instance_id_support_put(
29612 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29613{
29614 bool supported = ucontrol->value.integer.value[0] ? true : false;
29615
29616 q6common_update_instance_id_support(supported);
29617 return 0;
29618}
29619
29620static int msm_routing_instance_id_support_get(
29621 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29622{
29623 bool supported = false;
29624
29625 supported = q6common_is_instance_id_supported();
29626 ucontrol->value.integer.value[0] = supported ? 1 : 0;
29627
29628 return 0;
29629}
29630
29631static const struct snd_kcontrol_new
29632 msm_routing_feature_support_mixer_controls[] = {
29633 {
29634 .access = SNDRV_CTL_ELEM_ACCESS_READ |
29635 SNDRV_CTL_ELEM_ACCESS_WRITE,
29636 .info = msm_routing_instance_id_support_info,
29637 .name = "Instance ID Support",
29638 .put = msm_routing_instance_id_support_put,
29639 .get = msm_routing_instance_id_support_get,
29640 },
29641};
29642
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029643static const struct snd_pcm_ops msm_routing_pcm_ops = {
29644 .hw_params = msm_pcm_routing_hw_params,
29645 .close = msm_pcm_routing_close,
29646 .prepare = msm_pcm_routing_prepare,
29647};
29648
29649/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080029650static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029651{
Meng Wangee084a02018-09-04 16:11:58 +080029652 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029653 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080029654 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
29655 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080029656 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029657 ARRAY_SIZE(intercon));
29658
Meng Wangee084a02018-09-04 16:11:58 +080029659 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029660
Meng Wangee084a02018-09-04 16:11:58 +080029661 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029662 ARRAY_SIZE(lsm_controls));
29663
Meng Wangee084a02018-09-04 16:11:58 +080029664 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029665 ARRAY_SIZE(aanc_slim_0_rx_mux));
29666
Meng Wangee084a02018-09-04 16:11:58 +080029667 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053029668 ARRAY_SIZE(aanc_noise_level));
29669
Meng Wangee084a02018-09-04 16:11:58 +080029670 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029671 ARRAY_SIZE(msm_voc_session_controls));
29672
Meng Wangee084a02018-09-04 16:11:58 +080029673 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029674 ARRAY_SIZE(app_type_cfg_controls));
29675
Meng Wangee084a02018-09-04 16:11:58 +080029676 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029677 ARRAY_SIZE(lsm_app_type_cfg_controls));
29678
Meng Wangee084a02018-09-04 16:11:58 +080029679 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070029680 ARRAY_SIZE(module_cfg_controls));
29681
Meng Wangee084a02018-09-04 16:11:58 +080029682 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029683 stereo_to_custom_stereo_controls,
29684 ARRAY_SIZE(stereo_to_custom_stereo_controls));
29685
Meng Wangee084a02018-09-04 16:11:58 +080029686 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029687 ARRAY_SIZE(ec_ref_param_controls));
29688
Meng Wangee084a02018-09-04 16:11:58 +080029689 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029690 ARRAY_SIZE(channel_mixer_controls));
29691
Meng Wangee084a02018-09-04 16:11:58 +080029692 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029693
Meng Wangee084a02018-09-04 16:11:58 +080029694 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029695
Meng Wangee084a02018-09-04 16:11:58 +080029696 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029697
Meng Wangee084a02018-09-04 16:11:58 +080029698 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029699 use_ds1_or_ds2_controls,
29700 ARRAY_SIZE(use_ds1_or_ds2_controls));
29701
Meng Wangee084a02018-09-04 16:11:58 +080029702 snd_soc_add_component_controls(component,
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029703 hifi_filter_controls,
29704 ARRAY_SIZE(hifi_filter_controls));
29705
29706 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029707 device_pp_params_mixer_controls,
29708 ARRAY_SIZE(device_pp_params_mixer_controls));
29709
Meng Wangee084a02018-09-04 16:11:58 +080029710 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029711 msm_routing_be_dai_name_table_mixer_controls,
29712 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
29713
Meng Wangee084a02018-09-04 16:11:58 +080029714 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029715 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029716 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029717 ARRAY_SIZE(adm_channel_config_controls));
29718
Meng Wangee084a02018-09-04 16:11:58 +080029719 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029720 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029721 snd_soc_add_component_controls(component,
29722 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029723 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080029724 snd_soc_add_component_controls(
29725 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029726 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053029727 snd_soc_add_component_controls(component,
29728 port_multi_channel_map_mixer_controls,
29729 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029730
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029731 return 0;
29732}
29733
29734int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
29735{
29736 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
29737}
29738
29739void msm_routing_pcm_free(struct snd_pcm *pcm)
29740{
29741 msm_pcm_routing_hwdep_free(pcm);
29742}
29743
Meng Wangee084a02018-09-04 16:11:58 +080029744static struct snd_soc_component_driver msm_soc_routing_component = {
29745 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029746 .ops = &msm_routing_pcm_ops,
29747 .probe = msm_routing_probe,
29748 .pcm_new = msm_routing_pcm_new,
29749 .pcm_free = msm_routing_pcm_free,
29750};
29751
29752static int msm_routing_pcm_probe(struct platform_device *pdev)
29753{
29754
29755 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080029756 return snd_soc_register_component(&pdev->dev,
29757 &msm_soc_routing_component,
29758 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029759}
29760
29761static int msm_routing_pcm_remove(struct platform_device *pdev)
29762{
Meng Wangee084a02018-09-04 16:11:58 +080029763 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029764 return 0;
29765}
29766
29767static const struct of_device_id msm_pcm_routing_dt_match[] = {
29768 {.compatible = "qcom,msm-pcm-routing"},
29769 {}
29770};
29771MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
29772
29773static struct platform_driver msm_routing_pcm_driver = {
29774 .driver = {
29775 .name = "msm-pcm-routing",
29776 .owner = THIS_MODULE,
29777 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080029778 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029779 },
29780 .probe = msm_routing_pcm_probe,
29781 .remove = msm_routing_pcm_remove,
29782};
29783
29784int msm_routing_check_backend_enabled(int fedai_id)
29785{
29786 int i;
29787
29788 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
29789 /* bad ID assigned in machine driver */
29790 pr_err("%s: bad MM ID\n", __func__);
29791 return 0;
29792 }
29793 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29794 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
29795 return msm_bedais[i].active;
29796 }
29797 return 0;
29798}
29799
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029800static int get_cal_type_index(int32_t cal_type)
29801{
29802 int ret = -EINVAL;
29803
29804 switch (cal_type) {
29805 case ADM_TOPOLOGY_CAL_TYPE:
29806 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
29807 break;
29808 case ADM_LSM_TOPOLOGY_CAL_TYPE:
29809 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
29810 break;
29811 default:
29812 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
29813 }
29814 return ret;
29815}
29816
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029817static int msm_routing_set_cal(int32_t cal_type,
29818 size_t data_size, void *data)
29819{
29820 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029821 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029822 pr_debug("%s\n", __func__);
29823
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029824 cal_index = get_cal_type_index(cal_type);
29825 if (cal_index < 0) {
29826 pr_err("%s: Could not get cal index %d\n",
29827 __func__, cal_index);
29828 ret = -EINVAL;
29829 goto done;
29830 }
29831
29832 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029833 if (ret < 0) {
29834 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
29835 __func__, ret, cal_type);
29836 ret = -EINVAL;
29837 goto done;
29838 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029839 /* Pre-load if it is ADM topology */
29840 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
29841 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
29842 msm_routing_load_topology(data_size, data);
29843 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029844done:
29845 return ret;
29846}
29847
29848static void msm_routing_delete_cal_data(void)
29849{
29850 pr_debug("%s\n", __func__);
29851
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029852 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029853}
29854
29855static int msm_routing_init_cal_data(void)
29856{
29857 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029858 struct cal_type_info cal_type_info[] = {
29859 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029860 {NULL, NULL, NULL,
29861 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029862 {NULL, NULL, cal_utils_match_buf_num} },
29863
29864 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
29865 {NULL, NULL, NULL,
29866 msm_routing_set_cal, NULL, NULL} },
29867 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029868 };
29869 pr_debug("%s\n", __func__);
29870
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029871 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
29872 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029873 if (ret < 0) {
29874 pr_err("%s: could not create cal type!\n",
29875 __func__);
29876 ret = -EINVAL;
29877 goto err;
29878 }
29879
29880 return ret;
29881err:
29882 msm_routing_delete_cal_data();
29883 return ret;
29884}
29885
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053029886int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029887{
29888 mutex_init(&routing_lock);
29889 if (msm_routing_init_cal_data())
29890 pr_err("%s: could not init cal data!\n", __func__);
29891
29892 afe_set_routing_callback(
29893 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
29894
29895 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29896 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
29897
29898 return platform_driver_register(&msm_routing_pcm_driver);
29899}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029900
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053029901void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029902{
29903 msm_routing_delete_cal_data();
29904 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29905 mutex_destroy(&routing_lock);
29906 platform_driver_unregister(&msm_routing_pcm_driver);
29907}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029908
29909MODULE_DESCRIPTION("MSM routing platform driver");
29910MODULE_LICENSE("GPL v2");