blob: f3831e9fbdc0fe853eec7d41080d9bcea1c18b65 [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),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014444};
14445
14446static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014447 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014449 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14450 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014451 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14452 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14453 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014455 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014457 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("INT3_MI2S_TX", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014461 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14462 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014463 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14464 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14465 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14466 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014467 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14469 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014471 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14472 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014473 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("INTERNAL_FM_TX", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014495 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14497 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14498 msm_routing_put_audio_mixer),
14499 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14505 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14506 msm_routing_put_audio_mixer),
14507 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14513 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14514 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014515 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14517 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14518 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014519 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14520 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14521 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14522 msm_routing_get_audio_mixer,
14523 msm_routing_put_audio_mixer),
14524 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14525 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14526 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14527 msm_routing_get_audio_mixer,
14528 msm_routing_put_audio_mixer),
14529 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14530 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14531 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14532 msm_routing_get_audio_mixer,
14533 msm_routing_put_audio_mixer),
14534 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14535 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14536 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14537 msm_routing_get_audio_mixer,
14538 msm_routing_put_audio_mixer),
14539 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14540 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14541 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14542 msm_routing_get_audio_mixer,
14543 msm_routing_put_audio_mixer),
14544 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14545 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14546 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14547 msm_routing_get_audio_mixer,
14548 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014549 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14550 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14551 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14552 msm_routing_put_audio_mixer),
14553 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14554 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14555 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14556 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014557 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14558 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14559 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14560 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014561};
14562
14563static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014564 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14565 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014566 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14567 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014568 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14570 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014574 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("INT3_MI2S_TX", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +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("INTERNAL_FM_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_BT_SCO_TX", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
14597 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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),
Ralf Herza70027d2018-11-26 14:56:34 +010014600 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14602 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14603 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014604 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14605 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14606 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14607 msm_routing_put_audio_mixer),
14608 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14610 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14611 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014612 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14613 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14614 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14615 msm_routing_put_audio_mixer),
14616 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14622 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14623 msm_routing_put_audio_mixer),
14624 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14625 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14630 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14631 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014632 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14633 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14634 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14635 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14638 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14639 msm_routing_get_audio_mixer,
14640 msm_routing_put_audio_mixer),
14641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14643 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14644 msm_routing_get_audio_mixer,
14645 msm_routing_put_audio_mixer),
14646 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14648 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14649 msm_routing_get_audio_mixer,
14650 msm_routing_put_audio_mixer),
14651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14653 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14654 msm_routing_get_audio_mixer,
14655 msm_routing_put_audio_mixer),
14656 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14657 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14658 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14659 msm_routing_get_audio_mixer,
14660 msm_routing_put_audio_mixer),
14661 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14662 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14663 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14664 msm_routing_get_audio_mixer,
14665 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014666 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14668 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14669 msm_routing_put_audio_mixer),
14670 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14672 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14673 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014674 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14675 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14676 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14677 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014678};
14679
14680static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014683 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014685 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14686 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
14690 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014699 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14700 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014701 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14703 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014705 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14706 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014707 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_1", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
14726 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14746 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14766 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14778 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014785 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14787 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14788 msm_routing_put_audio_mixer),
14789 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14794 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14798 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14799 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14800 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014801 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14803 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14804 msm_routing_put_audio_mixer),
14805 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14811 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14812 msm_routing_put_audio_mixer),
14813 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14819 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14820 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014821 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14823 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14824 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14827 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14828 msm_routing_put_audio_mixer),
14829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14847 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14848 msm_routing_put_audio_mixer),
14849 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14851 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14852 msm_routing_put_audio_mixer),
14853 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14855 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14856 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014857 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14858 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14859 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14860 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014861};
14862
14863static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14864 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_AUXPCM_TX,
14866 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14867 msm_routing_put_audio_mixer),
14868 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14869 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14870 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14871 msm_routing_put_audio_mixer),
14872 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14873 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
14881 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14886 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14887 msm_routing_put_audio_mixer),
14888 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14889 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
14897 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
14901 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14902 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14903 msm_routing_put_audio_mixer),
14904 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14905 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14909 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14917 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14918 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14919 msm_routing_put_audio_mixer),
14920 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14921 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14925 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14934 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14935 msm_routing_put_audio_mixer),
14936 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14937 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
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_1", SND_SOC_NOPM,
14941 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14945 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14950 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14951 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014952 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14954 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14955 msm_routing_put_audio_mixer),
14956 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14957 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14965 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14966 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14967 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014968 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014969 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14970 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014971 msm_routing_put_audio_mixer),
14972 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014973 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014977 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
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("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014981 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014985 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
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),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014988 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14989 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14990 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14991 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014992 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014997 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15014 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15015 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015016 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15017 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015018 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020015019 msm_routing_put_audio_mixer),
15020 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_SEC_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),
Surendar Karkad47fda42018-05-20 19:21:10 +053015024 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15025 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15026 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15027 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015028};
15029
Derek Chenb097d922019-07-31 17:28:02 -070015030static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
15031 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_PRI_TDM_TX_0,
15033 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15034 msm_routing_put_audio_mixer),
15035 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_PRI_TDM_TX_3,
15045 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15046 msm_routing_put_audio_mixer),
15047 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
15060 MSM_BACKEND_DAI_SEC_TDM_TX_3,
15061 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15062 msm_routing_put_audio_mixer),
15063 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
15068 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_TERT_TDM_TX_3,
15077 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15078 msm_routing_put_audio_mixer),
15079 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15080 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
15092 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
15093 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15094 msm_routing_put_audio_mixer),
15095 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
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_1", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
15108 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
15109 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15110 msm_routing_put_audio_mixer),
15111};
15112
Viraja Kommarajud3478b22019-11-04 20:38:23 +053015113static const struct snd_kcontrol_new mmul23_mixer_controls[] = {
15114 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15115 MSM_BACKEND_DAI_PRI_TDM_TX_0,
15116 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15117 msm_routing_put_audio_mixer),
15118 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_PRI_TDM_TX_3,
15128 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15129 msm_routing_put_audio_mixer),
15130 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15131 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_SEC_TDM_TX_3,
15144 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15145 msm_routing_put_audio_mixer),
15146 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
15151 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_TERT_TDM_TX_3,
15160 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15161 msm_routing_put_audio_mixer),
15162 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
15171 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
15176 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15177 msm_routing_put_audio_mixer),
15178 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
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_1", SND_SOC_NOPM,
15183 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
15192 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15193 msm_routing_put_audio_mixer),
15194};
15195
Surendar Karkac1cde372018-08-14 18:56:24 +053015196static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
15197 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15198 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15199 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15200 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015201 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15202 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15203 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15204 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015205 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_SLIMBUS_6_TX,
15207 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15208 msm_routing_put_audio_mixer),
15209 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_SLIMBUS_7_TX,
15211 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15212 msm_routing_put_audio_mixer),
15213 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_PRI_MI2S_TX,
15215 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15216 msm_routing_put_audio_mixer),
15217 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15219 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15220 msm_routing_put_audio_mixer),
15221 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15223 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15224 msm_routing_put_audio_mixer),
15225 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15227 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15228 msm_routing_put_audio_mixer),
15229 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
15231 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15232 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015233 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15234 MSM_BACKEND_DAI_SENARY_MI2S_TX,
15235 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15236 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015237 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15238 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15239 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15240 msm_routing_put_audio_mixer),
15241 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15243 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15244 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015245 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15246 MSM_BACKEND_DAI_SLIMBUS_9_TX,
15247 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15248 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015249 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15250 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15251 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15252 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015253};
15254
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015255static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015256 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015258 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15259 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015260 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15261 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15262 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015264 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015266 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("INT3_MI2S_TX", SND_SOC_NOPM,
15269 MSM_BACKEND_DAI_INT3_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("INTERNAL_FM_TX", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15281 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
15285 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
15289 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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),
Ralf Herza70027d2018-11-26 14:56:34 +010015292 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15293 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15294 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15295 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015296 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15298 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15299 msm_routing_put_audio_mixer),
15300 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15301 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015302 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080015303 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015304 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15305 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15306 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15307 msm_routing_put_audio_mixer),
15308 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15309 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15314 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15315 msm_routing_put_audio_mixer),
15316 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15321 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15322 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15323 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015324 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15325 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15326 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15327 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015328 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15330 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15331 msm_routing_get_audio_mixer,
15332 msm_routing_put_audio_mixer),
15333 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15334 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15335 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15336 msm_routing_get_audio_mixer,
15337 msm_routing_put_audio_mixer),
15338 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15339 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15340 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15341 msm_routing_get_audio_mixer,
15342 msm_routing_put_audio_mixer),
15343 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15344 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15345 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15346 msm_routing_get_audio_mixer,
15347 msm_routing_put_audio_mixer),
15348 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15350 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15351 msm_routing_get_audio_mixer,
15352 msm_routing_put_audio_mixer),
15353 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15354 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15355 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15356 msm_routing_get_audio_mixer,
15357 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015358 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15359 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15360 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15361 msm_routing_put_audio_mixer),
15362 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15363 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15364 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15365 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015366 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15367 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15368 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15369 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015370};
15371
15372static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015373 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15374 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015375 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15376 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015377 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15378 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15379 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015381 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15382 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015383 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("INT3_MI2S_TX", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_INT3_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("INTERNAL_FM_TX", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
15394 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
15402 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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),
Ralf Herza70027d2018-11-26 14:56:34 +010015409 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15411 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15412 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015413 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15415 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15416 msm_routing_put_audio_mixer),
15417 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15419 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15420 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015421 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15422 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15423 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15424 msm_routing_put_audio_mixer),
15425 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
15430 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15431 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15432 msm_routing_put_audio_mixer),
15433 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15434 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15438 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15439 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15440 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015441 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15442 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15443 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15444 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015445 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15446 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15447 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15448 msm_routing_get_audio_mixer,
15449 msm_routing_put_audio_mixer),
15450 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15452 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15453 msm_routing_get_audio_mixer,
15454 msm_routing_put_audio_mixer),
15455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15457 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15458 msm_routing_get_audio_mixer,
15459 msm_routing_put_audio_mixer),
15460 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15461 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15462 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15463 msm_routing_get_audio_mixer,
15464 msm_routing_put_audio_mixer),
15465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15467 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15468 msm_routing_get_audio_mixer,
15469 msm_routing_put_audio_mixer),
15470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15472 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15473 msm_routing_get_audio_mixer,
15474 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015475 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15477 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15478 msm_routing_put_audio_mixer),
15479 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15480 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15481 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15482 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015483 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15485 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15486 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015487};
15488
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015489static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
15490 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15492 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15493 msm_routing_put_audio_mixer),
15494 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15496 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15497 msm_routing_put_audio_mixer),
15498 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_PRI_MI2S_TX,
15500 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15501 msm_routing_put_audio_mixer),
15502 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_INT3_MI2S_TX,
15504 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15505 msm_routing_put_audio_mixer),
15506 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15507 MSM_BACKEND_DAI_INT_FM_TX,
15508 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15509 msm_routing_put_audio_mixer),
15510 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15511 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15512 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15513 msm_routing_put_audio_mixer),
15514 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15515 MSM_BACKEND_DAI_AFE_PCM_TX,
15516 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15517 msm_routing_put_audio_mixer),
15518 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_INCALL_RECORD_RX,
15520 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15521 msm_routing_put_audio_mixer),
15522 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15523 MSM_BACKEND_DAI_INCALL_RECORD_TX,
15524 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15525 msm_routing_put_audio_mixer),
15526 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15527 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15528 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15529 msm_routing_put_audio_mixer),
15530 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15531 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15532 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15533 msm_routing_put_audio_mixer),
15534 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15536 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15537 msm_routing_put_audio_mixer),
15538 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15543 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
15547 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15548 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15549 msm_routing_put_audio_mixer),
15550 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15551 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15555 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15556 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15557 msm_routing_put_audio_mixer),
15558 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15560 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15561 msm_routing_get_audio_mixer,
15562 msm_routing_put_audio_mixer),
15563 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15565 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15566 msm_routing_get_audio_mixer,
15567 msm_routing_put_audio_mixer),
15568 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15570 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15571 msm_routing_get_audio_mixer,
15572 msm_routing_put_audio_mixer),
15573 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15575 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15576 msm_routing_get_audio_mixer,
15577 msm_routing_put_audio_mixer),
15578 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15580 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15581 msm_routing_get_audio_mixer,
15582 msm_routing_put_audio_mixer),
15583 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15585 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15586 msm_routing_get_audio_mixer,
15587 msm_routing_put_audio_mixer),
15588 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15590 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15591 msm_routing_put_audio_mixer),
15592 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15594 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15595 msm_routing_put_audio_mixer),
15596 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15597 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15598 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15599 msm_routing_put_audio_mixer),
15600};
15601
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015602static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015605 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15606 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015607 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015609 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15610 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015617 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15618 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015619 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15620 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015621 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15622 msm_routing_put_voice_mixer),
15623};
15624
15625static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015626 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015628 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15629 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015630 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15631 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015632 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15633 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015634 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15635 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015636 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15637 msm_routing_put_voice_mixer),
15638};
15639
15640static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015643 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15644 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015645 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15646 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15647 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15648 msm_routing_put_voice_mixer),
15649 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15650 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15651 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015653 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15654 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015655 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15656 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015657 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015659 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15660 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15664 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015665 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15666 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015667 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15668 msm_routing_put_voice_mixer),
15669};
15670
15671static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015672 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15673 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015674 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15675 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15679 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015680 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15681 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015682 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15683 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015684 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015686 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15687 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015688 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15689 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015690 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15691 msm_routing_put_voice_mixer),
15692};
15693
15694static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015695 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15696MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015697 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15698 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015699 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15700MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015701 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15702 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015703 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15704MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015705 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15706 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015707 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15708MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015709 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15710 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015711 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15712MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015713 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15714 msm_routing_put_voice_mixer),
15715};
15716
15717static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015718 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15719 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015720 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15721 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015722 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15723 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015724 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15725 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015728 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15729 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015730 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015732 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015734 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015736 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15737 msm_routing_put_voice_mixer),
15738};
15739
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015740static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015741 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15742MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015743 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15744 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15746MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015747 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15748 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15750MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015751 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15752 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015753 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15754MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015755 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15756 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015757 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15758MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015759 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15760 msm_routing_put_voice_mixer),
15761};
15762
Karthikeyan Mani57550082018-05-03 18:43:58 -070015763static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15764 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15766 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15767 msm_routing_put_voice_mixer),
15768 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15769 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15770 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15771 msm_routing_put_voice_mixer),
15772 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15773 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15774 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15775 msm_routing_put_voice_mixer),
15776 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15777 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15778 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15779 msm_routing_put_voice_mixer),
15780 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15781 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15782 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15783 msm_routing_put_voice_mixer),
15784};
15785
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015786static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15790 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15792 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015793 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15794 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015797 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15798 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15802 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015803 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15804 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015805 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15806 msm_routing_put_voice_mixer),
15807};
15808
15809static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015810 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15811 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015812 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15813 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015814 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_MI2S_RX,
15816 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15817 msm_routing_put_voice_mixer),
15818 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15819 MSM_BACKEND_DAI_MI2S_RX,
15820 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15821 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015822 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15823 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015824 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15825 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015826 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15827 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015828 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15829 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015830 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15831 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015832 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15833 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015834 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15835 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015836 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15837 msm_routing_put_voice_mixer),
15838};
15839
15840static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015841 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015842 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015843 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15844 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015845 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15846 MSM_BACKEND_DAI_PRI_MI2S_RX,
15847 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15848 msm_routing_put_voice_mixer),
15849 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15850 MSM_BACKEND_DAI_PRI_MI2S_RX,
15851 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15852 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015853 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015854 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015855 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15856 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("QCHAT", 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_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015861 SOC_DOUBLE_EXT("VoiceMMode1", 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_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15864 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015865 SOC_DOUBLE_EXT("VoiceMMode2", 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_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15868 msm_routing_put_voice_mixer),
15869};
15870
15871static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15873MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015874 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15875 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015876 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15877MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015878 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15879 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015880 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15881MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015882 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15883 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015884 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15885MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015886 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15887 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015888 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15889MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015890 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15891 msm_routing_put_voice_mixer),
15892};
15893
15894static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015895 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15896 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015897 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15898 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015899 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15900 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015901 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15902 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015903 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15904 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015905 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015909 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015911 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15912 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015913 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15914 msm_routing_put_voice_mixer),
15915};
15916
15917static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015918 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015920 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15921 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015922 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15924 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15925 msm_routing_put_voice_mixer),
15926 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15927 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15928 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15929 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015930 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015932 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015934 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15935 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015936 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015938 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015940 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015942 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15943 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015944 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15945 msm_routing_put_voice_mixer),
15946};
15947
15948static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015949 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15950 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015951 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15952 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015953 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15954 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15955 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15956 msm_routing_put_voice_mixer),
15957 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15958 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15959 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15960 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015961 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15962 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015963 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15964 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15968 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015969 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15970 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015971 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15972 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015973 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15974 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015975 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15976 msm_routing_put_voice_mixer),
15977};
15978
15979static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15983 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015984 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15985 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15986 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15987 msm_routing_put_voice_stub_mixer),
15988 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15989 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15990 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15991 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015992 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15993 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015994 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15995 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015996 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015998 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15999 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016002 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16003 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016004 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16005 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016006 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16007 msm_routing_put_voice_mixer),
16008};
16009
Karthikeyan Manic3700752019-03-11 18:33:53 -070016010static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
16011 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16013 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16014 msm_routing_put_voice_mixer),
16015 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16017 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16018 msm_routing_put_voice_mixer),
16019 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16020 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16021 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16022 msm_routing_put_voice_mixer),
16023 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16025 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16026 msm_routing_put_voice_mixer),
16027 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16028 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16029 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16030 msm_routing_put_voice_mixer),
16031};
16032
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016033static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016034 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16035 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016036 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16037 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016040 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16041 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016042 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16043 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016044 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16045 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016048 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16049 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016050 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16051 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016052 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16053 msm_routing_put_voice_mixer),
16054};
16055
16056static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016057 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16058 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016059 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16060 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016061 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016063 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16064 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016065 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16066 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016067 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16068 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016069 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16070 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016071 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16072 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016073 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016075 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16076 msm_routing_put_voice_mixer),
16077};
16078
16079static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016080 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16081MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016082 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16083 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016084 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16085MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016086 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16087 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16089MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016090 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16091 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016092 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16093MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016094 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16095 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016096 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16097MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016098 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16099 msm_routing_put_voice_mixer),
16100};
16101
16102static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016103 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16104MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016105 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16106 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016107 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16108MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016109 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16110 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016111 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16112MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016113 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16114 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016115 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16116MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016117 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16118 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016119 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16120MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016121 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16122 msm_routing_put_voice_mixer),
16123};
16124
16125static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16127MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016128 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16129 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016130 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16131MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016132 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16133 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016134 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16135MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016136 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16137 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016138 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16139MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016140 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16141 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016142 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16143MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016144 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16145 msm_routing_put_voice_mixer),
16146};
16147
Rohit Kumara5077932017-09-10 22:05:05 +053016148static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16150MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016151 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16152 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16154MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016155 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16156 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16158MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016159 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16160 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16162MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016163 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16164 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016165 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16166MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016167 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16168 msm_routing_put_voice_mixer),
16169};
16170
Karthikeyan Manic3700752019-03-11 18:33:53 -070016171static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
16172 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16173 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16174 msm_routing_put_voice_mixer),
16175 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16176 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16177 msm_routing_put_voice_mixer),
16178 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16179 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16180 msm_routing_put_voice_mixer),
16181 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16183 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16184 msm_routing_put_voice_mixer),
16185 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16186 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16187 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16188 msm_routing_put_voice_mixer),
16189};
16190
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016191static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016192 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016194 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16195 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16199 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016200 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016202 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16203 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016206 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16207 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016208 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16209 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016210 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16211 msm_routing_put_voice_mixer),
16212};
16213
16214static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016215 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16216MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016217 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16218 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016219 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16220MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016221 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16222 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016223 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16224MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016225 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16226 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16228MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016229 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16230 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016231 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16232MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016233 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16234 msm_routing_put_voice_mixer),
16235};
16236
16237static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016238 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16239 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016240 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16241 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016242 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016244 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16245 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016246 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016248 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16249 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016250 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016252 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16253 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016256 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16257 msm_routing_put_voice_mixer),
16258};
16259
16260static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016261 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16262 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016263 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16264 msm_routing_put_voice_mixer),
16265};
16266
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053016267static const struct snd_kcontrol_new quin_tdm_rx_2_voice_mixer_controls[] = {
16268 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16269 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
16270 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16271 msm_routing_put_voice_mixer),
16272};
16273
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016274static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
16275 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16276 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16277 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16278 msm_routing_put_voice_mixer),
16279 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16281 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16282 msm_routing_put_voice_mixer),
16283 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16284 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16285 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16286 msm_routing_put_voice_mixer),
16287 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16288 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16289 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16290 msm_routing_put_voice_mixer),
16291 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16292 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16293 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16294 msm_routing_put_voice_mixer),
16295};
16296
16297static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
16298 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16299 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16300 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16301 msm_routing_put_voice_mixer),
16302 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16304 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16305 msm_routing_put_voice_mixer),
16306 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16307 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16308 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16309 msm_routing_put_voice_mixer),
16310 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16312 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16313 msm_routing_put_voice_mixer),
16314 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16316 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16317 msm_routing_put_voice_mixer),
16318};
16319
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016320static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
16321 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16322 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16323 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16324 msm_routing_put_voice_mixer),
16325 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16327 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16328 msm_routing_put_voice_mixer),
16329 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16331 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16332 msm_routing_put_voice_mixer),
16333 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16335 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16336 msm_routing_put_voice_mixer),
16337 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16339 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16340 msm_routing_put_voice_mixer),
16341};
16342
16343static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
16344 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16346 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16347 msm_routing_put_voice_mixer),
16348 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16350 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16351 msm_routing_put_voice_mixer),
16352 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16354 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16355 msm_routing_put_voice_mixer),
16356 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16358 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16359 msm_routing_put_voice_mixer),
16360 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16362 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16363 msm_routing_put_voice_mixer),
16364};
16365
16366static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
16367 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16369 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16370 msm_routing_put_voice_mixer),
16371 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16373 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16374 msm_routing_put_voice_mixer),
16375 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16377 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16378 msm_routing_put_voice_mixer),
16379 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16381 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16382 msm_routing_put_voice_mixer),
16383 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16385 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16386 msm_routing_put_voice_mixer),
16387};
16388
16389static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
16390 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16391 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16392 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16393 msm_routing_put_voice_mixer),
16394 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16395 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16396 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16397 msm_routing_put_voice_mixer),
16398 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16400 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16401 msm_routing_put_voice_mixer),
16402 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16404 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16405 msm_routing_put_voice_mixer),
16406 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16408 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16409 msm_routing_put_voice_mixer),
16410};
16411
16412static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
16413 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16414 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16415 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16416 msm_routing_put_voice_mixer),
16417 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16419 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16420 msm_routing_put_voice_mixer),
16421 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16422 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16423 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16424 msm_routing_put_voice_mixer),
16425 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16426 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16427 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16428 msm_routing_put_voice_mixer),
16429 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16430 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16431 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16432 msm_routing_put_voice_mixer),
16433};
16434
16435static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
16436 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16437 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16438 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16439 msm_routing_put_voice_mixer),
16440 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16442 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16443 msm_routing_put_voice_mixer),
16444 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16446 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16447 msm_routing_put_voice_mixer),
16448 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16450 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16451 msm_routing_put_voice_mixer),
16452 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16454 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16455 msm_routing_put_voice_mixer),
16456};
16457
16458static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
16459 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16460 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16461 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16462 msm_routing_put_voice_mixer),
16463 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16464 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16465 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16466 msm_routing_put_voice_mixer),
16467 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16469 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16470 msm_routing_put_voice_mixer),
16471 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16473 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16474 msm_routing_put_voice_mixer),
16475 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16477 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16478 msm_routing_put_voice_mixer),
16479};
16480
16481static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
16482 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16483 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16484 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16485 msm_routing_put_voice_mixer),
16486 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16487 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16488 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16489 msm_routing_put_voice_mixer),
16490 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16492 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16493 msm_routing_put_voice_mixer),
16494 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16495 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16496 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16497 msm_routing_put_voice_mixer),
16498 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16499 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16500 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16501 msm_routing_put_voice_mixer),
16502};
16503
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016504static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
16505 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16507 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16508 msm_routing_put_voice_mixer),
16509 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16510 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16511 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16512 msm_routing_put_voice_stub_mixer),
16513 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16514 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16515 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16516 msm_routing_put_voice_stub_mixer),
16517 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16518 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16519 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16520 msm_routing_put_voice_mixer),
16521 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16522 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16523 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16524 msm_routing_put_voice_mixer),
16525 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16527 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16528 msm_routing_put_voice_mixer),
16529 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16530 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16531 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16532 msm_routing_put_voice_mixer),
16533 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16534 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16535 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16536 msm_routing_put_voice_mixer),
16537};
16538
16539static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
16540 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16542 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16543 msm_routing_put_voice_mixer),
16544 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16545 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16546 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16547 msm_routing_put_voice_stub_mixer),
16548 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16549 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16550 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16551 msm_routing_put_voice_stub_mixer),
16552 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16554 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16555 msm_routing_put_voice_mixer),
16556 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16558 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16559 msm_routing_put_voice_mixer),
16560 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16562 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16563 msm_routing_put_voice_mixer),
16564 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16565 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16566 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16567 msm_routing_put_voice_mixer),
16568 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16569 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16570 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16571 msm_routing_put_voice_mixer),
16572};
16573
16574static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
16575 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16576 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16577 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16578 msm_routing_put_voice_mixer),
16579 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16580 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16581 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16582 msm_routing_put_voice_stub_mixer),
16583 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16585 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16586 msm_routing_put_voice_stub_mixer),
16587 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16588 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16589 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16590 msm_routing_put_voice_mixer),
16591 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16592 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16593 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16594 msm_routing_put_voice_mixer),
16595 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16596 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16597 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16598 msm_routing_put_voice_mixer),
16599 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16600 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16601 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16602 msm_routing_put_voice_mixer),
16603 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16605 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16606 msm_routing_put_voice_mixer),
16607};
16608
16609static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
16610 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16612 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16613 msm_routing_put_voice_mixer),
16614 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16616 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16617 msm_routing_put_voice_stub_mixer),
16618 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16620 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16621 msm_routing_put_voice_stub_mixer),
16622 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16624 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16625 msm_routing_put_voice_mixer),
16626 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16628 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16629 msm_routing_put_voice_mixer),
16630 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16631 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16632 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16633 msm_routing_put_voice_mixer),
16634 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16636 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16637 msm_routing_put_voice_mixer),
16638 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16640 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16641 msm_routing_put_voice_mixer),
16642};
16643
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016644static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016645 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016647 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16648 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016649 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16650 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016651 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16652 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016653};
16654
16655static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016656 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16657 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016658 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16659 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016660 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16661 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016662 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16663 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016664};
16665
16666static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016667 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16668 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016669 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16670 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016671 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16672 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016673 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16674 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016675};
16676
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016677static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016678 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16679 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016680 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16681 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016682 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16683 MSM_BACKEND_DAI_MI2S_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("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016687 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16688 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016689 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016690 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16691 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016692 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016693 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16694 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016695 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016696 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16697 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016698 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016699 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16700 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016701 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016702 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16703 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016704 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016705 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16706 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016707 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016708 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16709 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016710 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16711 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16712 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016713 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016714 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16715 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016716 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16717 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16718 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016719 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016720 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16721 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016722 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016723 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16724 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016725 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016726 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16727 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016728 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016729 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16730 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016731 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16732 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016733 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16734 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016735 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016736 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016737 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016738 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16739 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16740 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16741 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16742 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16743 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016744 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16745 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16746 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16749 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16750 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16751 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16752 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16755 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16756 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16758 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16759 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16760 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16761 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16762 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16763 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16764 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016765 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16766 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16767 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16768 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16770 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016771 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016772 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16773 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016774};
16775
16776static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016777 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16778 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016779 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16780 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016781 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16782 MSM_BACKEND_DAI_MI2S_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("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016786 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16787 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016788 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016789 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16790 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016791 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016792 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16793 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016794 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016795 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16796 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016797 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016798 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16799 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016800 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016801 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16802 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016803 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016804 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16805 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016806 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016807 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16808 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016809 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16810 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16811 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016812 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016813 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16814 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016815 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16816 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16817 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016818 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016819 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16820 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016821 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016822 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16823 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016824 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016825 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16826 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016827 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016828 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16829 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016830 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016831 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16832 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016833 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16834 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16835 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16836 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16837 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16838 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016839 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16840 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16841 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016842 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16843 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16844 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16845 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16846 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16847 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16848 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16849 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16850 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16851 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16852 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16853 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16854 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16855 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16856 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16857 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16858 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16859 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016860 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16861 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16862 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16863 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16864 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16865 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016866 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16867 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016868 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016869};
16870
16871static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016872 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16873 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016874 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16875 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016876 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16877 MSM_BACKEND_DAI_MI2S_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("SLIM_0_TX_Voip", SND_SOC_NOPM,
16881 MSM_BACKEND_DAI_SLIMBUS_0_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("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16885 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16889 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16893 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16897 MSM_BACKEND_DAI_SEC_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("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16901 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16905 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16909 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016910 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16911 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016912 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16913 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16914 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16915 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016916 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16917 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016918 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16919 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016920 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16921 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16922 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16923 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016924 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16925 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016926 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("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16929 MSM_BACKEND_DAI_INT3_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("SLIM_7_TX_Voip", SND_SOC_NOPM,
16933 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX_Voip", SND_SOC_NOPM,
16937 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16941 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016944 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16945 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16946 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16947 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16948 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16949 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016950 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16951 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16952 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016953 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16954 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16955 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16956 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16957 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16958 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16961 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16962 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16963 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16964 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16965 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16966 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16967 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16968 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16969 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16970 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016971 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16972 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16973 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016974};
16975
16976static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016977 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16978 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016979 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16980 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016981 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16982 MSM_BACKEND_DAI_INT_BT_SCO_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("SLIM_1_TX", SND_SOC_NOPM,
16986 MSM_BACKEND_DAI_SLIMBUS_1_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("STUB_1_TX_HL", SND_SOC_NOPM,
16990 MSM_BACKEND_DAI_EXTPROC_EC_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("MI2S_TX", SND_SOC_NOPM,
16994 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
16998 MSM_BACKEND_DAI_PRI_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("TERT_MI2S_TX", SND_SOC_NOPM,
17002 MSM_BACKEND_DAI_TERTIARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
17006 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_QUATERNARY_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17018 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17022 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17026 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17030 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017031 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17032 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017033 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17034 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17035 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17036 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017037 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17038 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017039 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_3_TX", SND_SOC_NOPM,
17042 MSM_BACKEND_DAI_SLIMBUS_3_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("AFE_PCM_TX", SND_SOC_NOPM,
17046 MSM_BACKEND_DAI_AFE_PCM_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("SLIM_7_TX", SND_SOC_NOPM,
17050 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17054 MSM_BACKEND_DAI_SLIMBUS_8_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017057 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17058 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
17059 1, 0, msm_routing_get_voice_stub_mixer,
17060 msm_routing_put_voice_stub_mixer),
17061 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17062 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
17063 1, 0, msm_routing_get_voice_stub_mixer,
17064 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017065 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17066 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
17067 1, 0, msm_routing_get_voice_stub_mixer,
17068 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
17071 1, 0, msm_routing_get_voice_stub_mixer,
17072 msm_routing_put_voice_stub_mixer),
17073 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17074 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2", SND_SOC_NOPM,
17078 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3", SND_SOC_NOPM,
17082 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4", SND_SOC_NOPM,
17086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5", SND_SOC_NOPM,
17090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
17091 1, 0, msm_routing_get_voice_stub_mixer,
17092 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017093};
17094
17095static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017096 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
17097 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017098 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17099 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017100 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17101 MSM_BACKEND_DAI_SLIMBUS_1_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("STUB_1_TX_HL", SND_SOC_NOPM,
17105 MSM_BACKEND_DAI_EXTPROC_EC_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17109 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17113 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17117 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17121 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17125 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017126 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17127 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017128 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17129 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17130 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17131 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017132 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17133 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017134 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_3_TX", SND_SOC_NOPM,
17137 MSM_BACKEND_DAI_SLIMBUS_3_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("AFE_PCM_TX", SND_SOC_NOPM,
17141 MSM_BACKEND_DAI_AFE_PCM_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("PRI_MI2S_TX", SND_SOC_NOPM,
17145 MSM_BACKEND_DAI_PRI_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17149 MSM_BACKEND_DAI_QUATERNARY_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),
Josh Kirsch9d769302018-04-10 17:25:42 -070017152 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17153 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
17154 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17155 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017156 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17157 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017158 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_8_TX", SND_SOC_NOPM,
17161 MSM_BACKEND_DAI_SLIMBUS_8_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017164 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17165 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
17166 1, 0, msm_routing_get_voice_stub_mixer,
17167 msm_routing_put_voice_stub_mixer),
17168 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17169 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
17170 1, 0, msm_routing_get_voice_stub_mixer,
17171 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017172 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17173 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
17174 1, 0, msm_routing_get_voice_stub_mixer,
17175 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017176 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17177 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
17178 1, 0, msm_routing_get_voice_stub_mixer,
17179 msm_routing_put_voice_stub_mixer),
17180 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17181 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2", SND_SOC_NOPM,
17185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3", SND_SOC_NOPM,
17189 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4", SND_SOC_NOPM,
17193 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5", SND_SOC_NOPM,
17197 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
17198 1, 0, msm_routing_get_voice_stub_mixer,
17199 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017200};
17201
17202static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017203 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
17204 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017205 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17206 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017207 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17208 MSM_BACKEND_DAI_SLIMBUS_1_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("STUB_1_TX_HL", SND_SOC_NOPM,
17212 MSM_BACKEND_DAI_EXTPROC_EC_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17216 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17220 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17224 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17228 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17232 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017233 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17234 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017235 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17236 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17237 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17238 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017239 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17240 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017241 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_3_TX", SND_SOC_NOPM,
17244 MSM_BACKEND_DAI_SLIMBUS_3_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("AFE_PCM_TX", SND_SOC_NOPM,
17248 MSM_BACKEND_DAI_AFE_PCM_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("PRI_MI2S_TX", SND_SOC_NOPM,
17252 MSM_BACKEND_DAI_PRI_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17256 MSM_BACKEND_DAI_QUATERNARY_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("SLIM_7_TX", SND_SOC_NOPM,
17260 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17264 MSM_BACKEND_DAI_SLIMBUS_8_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017267 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17268 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17269 1, 0, msm_routing_get_voice_stub_mixer,
17270 msm_routing_put_voice_stub_mixer),
17271 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17272 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
17273 1, 0, msm_routing_get_voice_stub_mixer,
17274 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017275 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17276 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
17277 1, 0, msm_routing_get_voice_stub_mixer,
17278 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017279 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17280 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17281 1, 0, msm_routing_get_voice_stub_mixer,
17282 msm_routing_put_voice_stub_mixer),
17283 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17284 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2", SND_SOC_NOPM,
17288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3", SND_SOC_NOPM,
17292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4", SND_SOC_NOPM,
17296 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5", SND_SOC_NOPM,
17300 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
17301 1, 0, msm_routing_get_voice_stub_mixer,
17302 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017303};
17304
17305static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017306 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
17307 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017308 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17309 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017310 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
17311 MSM_BACKEND_DAI_SLIMBUS_0_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("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
17315 MSM_BACKEND_DAI_INT_BT_SCO_TX,
17316 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017317 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017318 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
17319 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017320 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17321 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017322 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17323 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17327 MSM_BACKEND_DAI_SEC_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("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17331 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17335 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17339 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017340 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17341 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017342 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17343 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17344 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17345 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017346 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
17347 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017348 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("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
17351 MSM_BACKEND_DAI_PRI_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("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
17355 MSM_BACKEND_DAI_TERTIARY_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("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
17359 MSM_BACKEND_DAI_INT3_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("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
17363 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX_QCHAT", SND_SOC_NOPM,
17367 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
17371 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017374 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17375 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17376 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17377 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17378 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17379 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017380 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17381 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17382 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017383 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17384 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17385 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17386 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17387 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17388 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17389 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17390 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17391 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17392 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
17393 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
17394 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17395 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
17396 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
17397 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17398 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
17399 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
17400 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017401};
17402
17403static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017404 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17405 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017406 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017408 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17409 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017410 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
17413 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017414 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17417 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017418 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
17421 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017422 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17423 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017424 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17425 MSM_BACKEND_DAI_INT0_MI2S_RX,
17426 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017428 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17429 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017430 MSM_BACKEND_DAI_INT3_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17433 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017434 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
17437 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017438 MSM_BACKEND_DAI_INT_BT_SCO_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("SLIM_7_TX", SND_SOC_NOPM,
17441 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017442 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17445 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017446 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17447 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017448 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17449 MSM_BACKEND_DAI_INT0_MI2S_RX,
17450 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17451 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017452};
17453
17454static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017455 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17456 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017457 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017459 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17460 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017461 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
17464 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017465 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17468 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017469 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
17472 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017473 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17474 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017475 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17476 MSM_BACKEND_DAI_INT4_MI2S_RX,
17477 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017479 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17480 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017481 MSM_BACKEND_DAI_INT3_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17484 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017485 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
17488 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017489 MSM_BACKEND_DAI_INT_BT_SCO_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("SLIM_7_TX", SND_SOC_NOPM,
17492 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017493 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17496 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017497 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17498 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017499 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17500 MSM_BACKEND_DAI_INT4_MI2S_RX,
17501 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17502 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017503};
17504
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017505static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
17506 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17507 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17508 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17509 msm_routing_put_port_mixer),
17510 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17511 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17512 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17513 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017514 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17515 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17516 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17517 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017518 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17519 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17520 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17521 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017522};
17523
17524static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
17525 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17526 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17527 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17528 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017529 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17530 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17531 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17532 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017533 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080017534 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017535 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17536 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017537 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17538 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17539 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17540 msm_routing_put_port_mixer),
17541
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017542};
17543
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053017544static const struct snd_kcontrol_new rx_cdc_dma_rx_1_port_mixer_controls[] = {
17545 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17546 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17547 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17548 msm_routing_put_port_mixer),
17549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17550 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17552 msm_routing_put_port_mixer),
17553 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17554 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17555 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17556 msm_routing_put_port_mixer),
17557 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17558 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17559 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17560 msm_routing_put_port_mixer),
17561};
17562
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017563static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017564 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17565 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017566 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017568 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17569 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017570 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
17573 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017574 MSM_BACKEND_DAI_SLIMBUS_1_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_7_TX", SND_SOC_NOPM,
17577 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017578 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17581 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017582 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17585 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017586 MSM_BACKEND_DAI_AUXPCM_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("SEC_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_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17593 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017594 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17597 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017598 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17601 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017602 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17603 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017604 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17605 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17606 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017608 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17609 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017610 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
17613 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017614 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
17617 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017618 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
17621 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017622 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17625 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017626 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
17629 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017630 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17631 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017632 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17633 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17634 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017636 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17637 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017638 MSM_BACKEND_DAI_INT_BT_SCO_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("PRI_MI2S_RX", SND_SOC_NOPM,
17641 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017642 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017644 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
17645 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017646 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_RX", SND_SOC_NOPM,
17649 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017650 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_RX", SND_SOC_NOPM,
17653 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017654 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_RX", SND_SOC_NOPM,
17657 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017658 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17659 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017660 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
17661 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17662 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17663 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017664 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17665 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17666 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053017667 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017668};
17669
17670static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017671 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17672 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017673 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017675 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17676 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017677 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
17680 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017681 MSM_BACKEND_DAI_SLIMBUS_1_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17684 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017685 MSM_BACKEND_DAI_SEC_AUXPCM_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("QUAT_TDM_TX_0", SND_SOC_NOPM,
17688 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017689 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017691 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17692 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017693 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17694 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017695 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17696 MSM_BACKEND_DAI_AUXPCM_RX,
17697 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17698 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017699};
17700
17701static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017702 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17703 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017704 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017706 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17707 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017708 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17711 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017712 MSM_BACKEND_DAI_AUXPCM_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("PRI_MI2S_TX", SND_SOC_NOPM,
17715 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017716 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17717 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017718};
17719
17720static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017721 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17722 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017723 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017725 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17726 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017727 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17730 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017731 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17732 msm_routing_put_port_mixer),
17733};
17734
17735static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017736 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17737 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017738 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017740 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17741 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017742 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17745 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017746 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17747 msm_routing_put_port_mixer),
17748};
17749
Rohit Kumara5077932017-09-10 22:05:05 +053017750static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017751 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17752 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017753 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017755 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17756 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017757 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17760 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017761 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17762 msm_routing_put_port_mixer),
17763};
17764
Karthikeyan Manic3700752019-03-11 18:33:53 -070017765static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17766 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17767 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17768 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17769 msm_routing_put_port_mixer),
17770 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17771 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17772 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17773 msm_routing_put_port_mixer),
17774 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17775 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17776 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17777 msm_routing_put_port_mixer),
17778};
17779
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017780static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017781 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17782 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017783 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017785 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17786 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017787 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17790 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017791 MSM_BACKEND_DAI_AUXPCM_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("SEC_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_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17798 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017799 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17802 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017803 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17804 msm_routing_put_port_mixer),
17805};
17806
17807static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017808 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17809 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017810 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017812 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17813 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017814 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017816 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17817 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017818 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017820 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17821 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017822 MSM_BACKEND_DAI_AUXPCM_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("SLIM_0_RX", SND_SOC_NOPM,
17825 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017826 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17827 msm_routing_put_port_mixer),
17828};
17829
17830static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017831 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17832 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017833 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017835 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17836 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017837 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
17840 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017841 MSM_BACKEND_DAI_SLIMBUS_1_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_7_TX", SND_SOC_NOPM,
17844 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017845 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17848 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017849 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17852 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017853 MSM_BACKEND_DAI_AUXPCM_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("SEC_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_SEC_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("MI2S_TX", SND_SOC_NOPM,
17860 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017861 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
17864 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017865 MSM_BACKEND_DAI_PRI_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("TERT_MI2S_TX", SND_SOC_NOPM,
17868 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017869 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17872 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017873 MSM_BACKEND_DAI_QUATERNARY_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17876 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017877 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17878 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017879 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17880 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17881 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17882 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017883};
17884
17885static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017886 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17887 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017888 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017890 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17891 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017892 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17893 msm_routing_put_port_mixer),
17894};
17895
17896static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017897 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17898 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017899 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017901 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17902 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017903 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17904 msm_routing_put_port_mixer),
17905};
17906
17907
17908static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017909 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17910 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017911 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17912 msm_routing_put_port_mixer),
17913};
17914
17915static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017916 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17917 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017918 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17919 msm_routing_put_port_mixer),
17920};
17921
Karthikeyan Mani57550082018-05-03 18:43:58 -070017922static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17923 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17924 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17925 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17926 msm_routing_put_port_mixer),
17927};
17928
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017929static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017930 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17931 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017932 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17933 msm_routing_put_port_mixer),
17934};
17935
17936static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017937 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17938 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017939 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017941 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17942 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017943 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17944 msm_routing_put_port_mixer),
17945};
17946
17947static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017948 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17949 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017950 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017952 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17953 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017954 MSM_BACKEND_DAI_TERTIARY_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17957 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017958 MSM_BACKEND_DAI_INT_FM_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17961 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017962 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17965 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017966 MSM_BACKEND_DAI_INT_BT_SCO_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("PRI_MI2S_TX", SND_SOC_NOPM,
17969 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017970 MSM_BACKEND_DAI_PRI_MI2S_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("QUIN_MI2S_TX", SND_SOC_NOPM,
17973 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017974 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17975 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017976 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17977 MSM_BACKEND_DAI_PRI_MI2S_RX,
17978 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017980 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17981 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017982 MSM_BACKEND_DAI_SLIMBUS_0_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_8_TX", SND_SOC_NOPM,
17985 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017986 MSM_BACKEND_DAI_SLIMBUS_8_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17989 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017990 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17991 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017992};
17993
17994static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017995 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17996 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017997 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17998 msm_routing_put_port_mixer),
17999};
18000
18001static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018002 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18003 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018004 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018006 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18007 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018008 MSM_BACKEND_DAI_TERTIARY_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18011 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018012 MSM_BACKEND_DAI_INT_FM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18015 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018016 MSM_BACKEND_DAI_AUXPCM_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("SLIM_0_TX", SND_SOC_NOPM,
18019 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018020 MSM_BACKEND_DAI_SLIMBUS_0_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("SEC_MI2S_TX", SND_SOC_NOPM,
18023 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018024 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18027 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018028 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
18031 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018032 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18033 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018034 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18035 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
18036 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018038 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
18039 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018040 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18041 msm_routing_put_port_mixer),
18042};
18043
Rohit Kumara5077932017-09-10 22:05:05 +053018044static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018045 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18046 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018047 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018049 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18050 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018051 MSM_BACKEND_DAI_TERTIARY_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("SLIM_0_TX", SND_SOC_NOPM,
18054 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018055 MSM_BACKEND_DAI_SLIMBUS_0_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18058 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018059 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("QUIN_MI2S_TX", SND_SOC_NOPM,
18062 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018063 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18064 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018065 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18066 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
18067 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018069 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18070 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018071 MSM_BACKEND_DAI_SECONDARY_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("SLIM_8_TX", SND_SOC_NOPM,
18074 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018075 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18076 msm_routing_put_port_mixer),
18077};
18078
Karthikeyan Manic3700752019-03-11 18:33:53 -070018079static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
18080 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18081 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18082 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18083 msm_routing_put_port_mixer),
18084 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18085 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18086 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18087 msm_routing_put_port_mixer),
18088 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
18089 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18090 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
18091 msm_routing_put_port_mixer),
18092 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18093 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18094 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18095 msm_routing_put_port_mixer),
18096 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
18097 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18098 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18099 msm_routing_put_port_mixer),
18100 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18101 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18102 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18103 msm_routing_put_port_mixer),
18104 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18105 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18106 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18107 msm_routing_put_port_mixer),
18108 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
18109 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18110 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18111 msm_routing_put_port_mixer),
18112};
18113
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018114static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018115 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18116 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018117 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18118 msm_routing_get_port_mixer,
18119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018120 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18121 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018122 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18123 msm_routing_get_port_mixer,
18124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018125 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18126 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018127 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18128 msm_routing_get_port_mixer,
18129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018130 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18131 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018132 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18133 msm_routing_get_port_mixer,
18134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018135 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18136 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018137 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18138 msm_routing_get_port_mixer,
18139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018140 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18141 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018142 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18143 msm_routing_get_port_mixer,
18144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018145 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18146 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018147 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18148 msm_routing_get_port_mixer,
18149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018150 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18151 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018152 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18153 msm_routing_get_port_mixer,
18154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018155 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18156 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018157 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18158 msm_routing_get_port_mixer,
18159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018160 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18161 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018162 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18163 msm_routing_get_port_mixer,
18164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018165 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18166 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018167 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18168 msm_routing_get_port_mixer,
18169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018170 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18171 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018172 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18173 msm_routing_get_port_mixer,
18174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018175 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18176 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018177 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18178 msm_routing_get_port_mixer,
18179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018180 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18181 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018182 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18183 msm_routing_get_port_mixer,
18184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018185 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18186 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018187 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18188 msm_routing_get_port_mixer,
18189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018190 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18191 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018192 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18193 msm_routing_get_port_mixer,
18194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018195 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18196 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018197 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18198 msm_routing_get_port_mixer,
18199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018200 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18201 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018202 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18203 msm_routing_get_port_mixer,
18204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018205 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18206 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018207 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18208 msm_routing_get_port_mixer,
18209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018210 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18211 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018212 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18213 msm_routing_get_port_mixer,
18214 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018215 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18216 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18217 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18218 msm_routing_get_port_mixer,
18219 msm_routing_put_port_mixer),
18220 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18221 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18222 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18223 msm_routing_get_port_mixer,
18224 msm_routing_put_port_mixer),
18225 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18226 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18227 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18228 msm_routing_get_port_mixer,
18229 msm_routing_put_port_mixer),
18230 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18231 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18232 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18233 msm_routing_get_port_mixer,
18234 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018235};
18236
18237static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018238 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18239 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018240 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18241 msm_routing_get_port_mixer,
18242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018243 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18244 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018245 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18246 msm_routing_get_port_mixer,
18247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018248 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18249 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018250 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18251 msm_routing_get_port_mixer,
18252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018253 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18254 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018255 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18256 msm_routing_get_port_mixer,
18257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018258 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18259 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018260 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18261 msm_routing_get_port_mixer,
18262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018263 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18264 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018265 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18266 msm_routing_get_port_mixer,
18267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018268 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18269 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018270 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18271 msm_routing_get_port_mixer,
18272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018273 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18274 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018275 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18276 msm_routing_get_port_mixer,
18277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018278 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18279 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018280 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18281 msm_routing_get_port_mixer,
18282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018283 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18284 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018285 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18286 msm_routing_get_port_mixer,
18287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018288 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18289 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018290 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18291 msm_routing_get_port_mixer,
18292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018293 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18294 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018295 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18296 msm_routing_get_port_mixer,
18297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018298 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18299 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018300 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18301 msm_routing_get_port_mixer,
18302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018303 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18304 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018305 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18306 msm_routing_get_port_mixer,
18307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018308 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18309 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018310 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18311 msm_routing_get_port_mixer,
18312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018313 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18314 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018315 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18316 msm_routing_get_port_mixer,
18317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018318 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18319 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018320 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18321 msm_routing_get_port_mixer,
18322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018323 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18324 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018325 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18326 msm_routing_get_port_mixer,
18327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018328 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18329 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018330 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18331 msm_routing_get_port_mixer,
18332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018333 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18334 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018335 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18336 msm_routing_get_port_mixer,
18337 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018338 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18339 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18340 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18341 msm_routing_get_port_mixer,
18342 msm_routing_put_port_mixer),
18343 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18344 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18345 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18346 msm_routing_get_port_mixer,
18347 msm_routing_put_port_mixer),
18348 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18349 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18350 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18351 msm_routing_get_port_mixer,
18352 msm_routing_put_port_mixer),
18353 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18354 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18355 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18356 msm_routing_get_port_mixer,
18357 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018358};
18359
18360static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018361 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18362 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018363 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18364 msm_routing_get_port_mixer,
18365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018366 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18367 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018368 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18369 msm_routing_get_port_mixer,
18370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018371 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18372 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018373 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18374 msm_routing_get_port_mixer,
18375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018376 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18377 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018378 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18379 msm_routing_get_port_mixer,
18380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018381 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18382 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018383 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18384 msm_routing_get_port_mixer,
18385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018386 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18387 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018388 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18389 msm_routing_get_port_mixer,
18390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018391 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18392 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018393 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18394 msm_routing_get_port_mixer,
18395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018396 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18397 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018398 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18399 msm_routing_get_port_mixer,
18400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018401 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18402 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018403 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18404 msm_routing_get_port_mixer,
18405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018406 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18407 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018408 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18409 msm_routing_get_port_mixer,
18410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018411 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18412 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018413 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18414 msm_routing_get_port_mixer,
18415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018416 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18417 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018418 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18419 msm_routing_get_port_mixer,
18420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018421 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18422 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018423 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18424 msm_routing_get_port_mixer,
18425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018426 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18427 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018428 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18429 msm_routing_get_port_mixer,
18430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018431 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18432 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018433 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18434 msm_routing_get_port_mixer,
18435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018436 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18437 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018438 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18439 msm_routing_get_port_mixer,
18440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018441 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18442 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018443 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18444 msm_routing_get_port_mixer,
18445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018446 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18447 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018448 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18449 msm_routing_get_port_mixer,
18450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018451 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18452 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018453 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18454 msm_routing_get_port_mixer,
18455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018456 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18457 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018458 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18459 msm_routing_get_port_mixer,
18460 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018461 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18462 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18463 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18464 msm_routing_get_port_mixer,
18465 msm_routing_put_port_mixer),
18466 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18467 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18468 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18469 msm_routing_get_port_mixer,
18470 msm_routing_put_port_mixer),
18471 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18472 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18473 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18474 msm_routing_get_port_mixer,
18475 msm_routing_put_port_mixer),
18476 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18477 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18478 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18479 msm_routing_get_port_mixer,
18480 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018481};
18482
18483static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018484 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18485 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018486 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18487 msm_routing_get_port_mixer,
18488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018489 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18490 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018491 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18492 msm_routing_get_port_mixer,
18493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018494 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18495 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018496 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18497 msm_routing_get_port_mixer,
18498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018499 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18500 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018501 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18502 msm_routing_get_port_mixer,
18503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018504 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18505 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018506 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18507 msm_routing_get_port_mixer,
18508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018509 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18510 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018511 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18512 msm_routing_get_port_mixer,
18513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018514 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18515 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018516 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18517 msm_routing_get_port_mixer,
18518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018519 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18520 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018521 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18522 msm_routing_get_port_mixer,
18523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018524 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18525 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018526 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18527 msm_routing_get_port_mixer,
18528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018529 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18530 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018531 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18532 msm_routing_get_port_mixer,
18533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018534 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18535 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018536 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18537 msm_routing_get_port_mixer,
18538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018539 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18540 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018541 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18542 msm_routing_get_port_mixer,
18543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018544 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18545 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018546 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18547 msm_routing_get_port_mixer,
18548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018549 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18550 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018551 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18552 msm_routing_get_port_mixer,
18553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018554 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18555 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018556 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18557 msm_routing_get_port_mixer,
18558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018559 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18560 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018561 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18562 msm_routing_get_port_mixer,
18563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018564 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18565 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018566 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18567 msm_routing_get_port_mixer,
18568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018569 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18570 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018571 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18572 msm_routing_get_port_mixer,
18573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018574 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18575 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018576 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18577 msm_routing_get_port_mixer,
18578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018579 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18580 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018581 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18582 msm_routing_get_port_mixer,
18583 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018584 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18585 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18586 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18587 msm_routing_get_port_mixer,
18588 msm_routing_put_port_mixer),
18589 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18590 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18591 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18592 msm_routing_get_port_mixer,
18593 msm_routing_put_port_mixer),
18594 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18595 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18596 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18597 msm_routing_get_port_mixer,
18598 msm_routing_put_port_mixer),
18599 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18600 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18601 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18602 msm_routing_get_port_mixer,
18603 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018604};
18605
18606static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018607 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18608 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018609 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18610 msm_routing_get_port_mixer,
18611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018612 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18613 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018614 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18615 msm_routing_get_port_mixer,
18616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018617 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18618 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018619 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18620 msm_routing_get_port_mixer,
18621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018622 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18623 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018624 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18625 msm_routing_get_port_mixer,
18626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018627 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18628 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018629 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18630 msm_routing_get_port_mixer,
18631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018632 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18633 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018634 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18635 msm_routing_get_port_mixer,
18636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018637 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18638 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018639 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18640 msm_routing_get_port_mixer,
18641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018642 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18643 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018644 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18645 msm_routing_get_port_mixer,
18646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018647 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18648 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018649 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18650 msm_routing_get_port_mixer,
18651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018652 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18653 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018654 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18655 msm_routing_get_port_mixer,
18656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018657 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18658 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018659 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18660 msm_routing_get_port_mixer,
18661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018662 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18663 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018664 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18665 msm_routing_get_port_mixer,
18666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018667 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18668 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018669 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18670 msm_routing_get_port_mixer,
18671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018672 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18673 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018674 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18675 msm_routing_get_port_mixer,
18676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018677 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18678 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018679 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18680 msm_routing_get_port_mixer,
18681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018682 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18683 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018684 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18685 msm_routing_get_port_mixer,
18686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018687 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18688 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018689 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18690 msm_routing_get_port_mixer,
18691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018692 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18693 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018694 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18695 msm_routing_get_port_mixer,
18696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018697 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18698 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018699 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18700 msm_routing_get_port_mixer,
18701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018702 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18703 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018704 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18705 msm_routing_get_port_mixer,
18706 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018707 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18708 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18709 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18710 msm_routing_get_port_mixer,
18711 msm_routing_put_port_mixer),
18712 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18713 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18714 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18715 msm_routing_get_port_mixer,
18716 msm_routing_put_port_mixer),
18717 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18718 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18719 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18720 msm_routing_get_port_mixer,
18721 msm_routing_put_port_mixer),
18722 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18723 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18724 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18725 msm_routing_get_port_mixer,
18726 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018727};
18728
18729static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018730 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18731 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018732 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18733 msm_routing_get_port_mixer,
18734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018735 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18736 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018737 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18738 msm_routing_get_port_mixer,
18739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018740 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18741 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018742 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18743 msm_routing_get_port_mixer,
18744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018745 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18746 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018747 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18748 msm_routing_get_port_mixer,
18749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018750 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18751 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018752 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18753 msm_routing_get_port_mixer,
18754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018755 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18756 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018757 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18758 msm_routing_get_port_mixer,
18759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018760 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18761 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018762 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18763 msm_routing_get_port_mixer,
18764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018765 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18766 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018767 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18768 msm_routing_get_port_mixer,
18769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018770 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18771 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018772 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18773 msm_routing_get_port_mixer,
18774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018775 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18776 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018777 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18778 msm_routing_get_port_mixer,
18779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018780 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18781 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018782 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18783 msm_routing_get_port_mixer,
18784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018785 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18786 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018787 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18788 msm_routing_get_port_mixer,
18789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018790 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18791 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018792 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18793 msm_routing_get_port_mixer,
18794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018795 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18796 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018797 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18798 msm_routing_get_port_mixer,
18799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018800 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18801 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018802 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18803 msm_routing_get_port_mixer,
18804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018805 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18806 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018807 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18808 msm_routing_get_port_mixer,
18809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018810 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18811 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018812 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18813 msm_routing_get_port_mixer,
18814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018815 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18816 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018817 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18818 msm_routing_get_port_mixer,
18819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018820 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18821 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018822 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18823 msm_routing_get_port_mixer,
18824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018825 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18826 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018827 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18828 msm_routing_get_port_mixer,
18829 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018830 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18831 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18832 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18833 msm_routing_get_port_mixer,
18834 msm_routing_put_port_mixer),
18835 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18836 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18837 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18838 msm_routing_get_port_mixer,
18839 msm_routing_put_port_mixer),
18840 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18841 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18842 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18843 msm_routing_get_port_mixer,
18844 msm_routing_put_port_mixer),
18845 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18846 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18847 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18848 msm_routing_get_port_mixer,
18849 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018850};
18851
18852static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018853 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18854 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018855 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18856 msm_routing_get_port_mixer,
18857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018858 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18859 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018860 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18861 msm_routing_get_port_mixer,
18862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018863 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18864 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018865 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18866 msm_routing_get_port_mixer,
18867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018868 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18869 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018870 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18871 msm_routing_get_port_mixer,
18872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018873 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18874 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018875 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18876 msm_routing_get_port_mixer,
18877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018878 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18879 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018880 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18881 msm_routing_get_port_mixer,
18882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018883 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18884 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018885 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18886 msm_routing_get_port_mixer,
18887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018888 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18889 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018890 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18891 msm_routing_get_port_mixer,
18892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018893 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18894 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018895 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18896 msm_routing_get_port_mixer,
18897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018898 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18899 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018900 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18901 msm_routing_get_port_mixer,
18902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018903 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18904 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018905 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18906 msm_routing_get_port_mixer,
18907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018908 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18909 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018910 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18911 msm_routing_get_port_mixer,
18912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018913 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18914 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018915 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18916 msm_routing_get_port_mixer,
18917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018918 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18919 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018920 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18921 msm_routing_get_port_mixer,
18922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018923 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18924 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018925 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18926 msm_routing_get_port_mixer,
18927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018928 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18929 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018930 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18931 msm_routing_get_port_mixer,
18932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018933 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18934 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018935 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18936 msm_routing_get_port_mixer,
18937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018938 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18939 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018940 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18941 msm_routing_get_port_mixer,
18942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018943 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18944 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018945 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18946 msm_routing_get_port_mixer,
18947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018948 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18949 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018950 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18951 msm_routing_get_port_mixer,
18952 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018953 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18954 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18955 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18956 msm_routing_get_port_mixer,
18957 msm_routing_put_port_mixer),
18958 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18959 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18960 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18961 msm_routing_get_port_mixer,
18962 msm_routing_put_port_mixer),
18963 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18964 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18965 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18966 msm_routing_get_port_mixer,
18967 msm_routing_put_port_mixer),
18968 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18969 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18970 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18971 msm_routing_get_port_mixer,
18972 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018973};
18974
18975static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018976 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18977 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018978 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18979 msm_routing_get_port_mixer,
18980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018981 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18982 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018983 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18984 msm_routing_get_port_mixer,
18985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018986 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18987 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018988 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18989 msm_routing_get_port_mixer,
18990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018991 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18992 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018993 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18994 msm_routing_get_port_mixer,
18995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018996 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18997 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018998 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18999 msm_routing_get_port_mixer,
19000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019001 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19002 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019003 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19004 msm_routing_get_port_mixer,
19005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019006 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19007 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019008 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19009 msm_routing_get_port_mixer,
19010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019011 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19012 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019013 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19014 msm_routing_get_port_mixer,
19015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019016 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
19017 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019018 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
19019 msm_routing_get_port_mixer,
19020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019021 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
19022 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019023 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
19024 msm_routing_get_port_mixer,
19025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019026 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
19027 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019028 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
19029 msm_routing_get_port_mixer,
19030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019031 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
19032 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019033 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
19034 msm_routing_get_port_mixer,
19035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019036 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19037 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019038 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19039 msm_routing_get_port_mixer,
19040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019041 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19042 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019043 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19044 msm_routing_get_port_mixer,
19045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019046 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19047 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019048 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19049 msm_routing_get_port_mixer,
19050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019051 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19052 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019053 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19054 msm_routing_get_port_mixer,
19055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019056 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19057 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019058 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19059 msm_routing_get_port_mixer,
19060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019061 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19062 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019063 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19064 msm_routing_get_port_mixer,
19065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019066 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19067 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019068 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19069 msm_routing_get_port_mixer,
19070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019071 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19072 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019073 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19074 msm_routing_get_port_mixer,
19075 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019076 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19077 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19078 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19079 msm_routing_get_port_mixer,
19080 msm_routing_put_port_mixer),
19081 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19082 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19083 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19084 msm_routing_get_port_mixer,
19085 msm_routing_put_port_mixer),
19086 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19087 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19088 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19089 msm_routing_get_port_mixer,
19090 msm_routing_put_port_mixer),
19091 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19092 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19093 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19094 msm_routing_get_port_mixer,
19095 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019096};
19097
Derek Chenfdcc0982018-10-02 15:14:03 -070019098static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
19099 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
19100 MSM_BACKEND_DAI_SEC_TDM_RX_7,
19101 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
19102 msm_routing_get_port_mixer,
19103 msm_routing_put_port_mixer),
19104};
19105
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019106static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019107 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19108 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019109 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19110 msm_routing_get_port_mixer,
19111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019112 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19113 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019114 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19115 msm_routing_get_port_mixer,
19116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019117 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19118 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019119 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19120 msm_routing_get_port_mixer,
19121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019122 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19123 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019124 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19125 msm_routing_get_port_mixer,
19126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019127 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19128 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019129 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19130 msm_routing_get_port_mixer,
19131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019132 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19133 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019134 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19135 msm_routing_get_port_mixer,
19136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019137 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19138 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019139 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19140 msm_routing_get_port_mixer,
19141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019142 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19143 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019144 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19145 msm_routing_get_port_mixer,
19146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019147 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19148 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019149 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19150 msm_routing_get_port_mixer,
19151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019152 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19153 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019154 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19155 msm_routing_get_port_mixer,
19156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019157 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19158 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019159 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19160 msm_routing_get_port_mixer,
19161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019162 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19163 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019164 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19165 msm_routing_get_port_mixer,
19166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019167 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19168 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019169 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19170 msm_routing_get_port_mixer,
19171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019172 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19173 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019174 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19175 msm_routing_get_port_mixer,
19176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019177 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19178 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019179 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19180 msm_routing_get_port_mixer,
19181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019182 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19183 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019184 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19185 msm_routing_get_port_mixer,
19186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019187 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19188 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019189 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19190 msm_routing_get_port_mixer,
19191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019192 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19193 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019194 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19195 msm_routing_get_port_mixer,
19196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019197 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19198 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019199 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19200 msm_routing_get_port_mixer,
19201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019202 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19203 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019204 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19205 msm_routing_get_port_mixer,
19206 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019207 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19208 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19209 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19210 msm_routing_get_port_mixer,
19211 msm_routing_put_port_mixer),
19212 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19213 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19214 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19215 msm_routing_get_port_mixer,
19216 msm_routing_put_port_mixer),
19217 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19218 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19219 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19220 msm_routing_get_port_mixer,
19221 msm_routing_put_port_mixer),
19222 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19223 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19224 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19225 msm_routing_get_port_mixer,
19226 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019227};
19228
19229static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019230 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19231 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019232 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19233 msm_routing_get_port_mixer,
19234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019235 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19236 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019237 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19238 msm_routing_get_port_mixer,
19239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019240 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19241 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019242 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19243 msm_routing_get_port_mixer,
19244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019245 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19246 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019247 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19248 msm_routing_get_port_mixer,
19249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019250 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19251 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019252 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19253 msm_routing_get_port_mixer,
19254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019255 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19256 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019257 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19258 msm_routing_get_port_mixer,
19259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019260 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19261 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019262 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19263 msm_routing_get_port_mixer,
19264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019265 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19266 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019267 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19268 msm_routing_get_port_mixer,
19269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019270 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19271 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019272 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19273 msm_routing_get_port_mixer,
19274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019275 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19276 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019277 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19278 msm_routing_get_port_mixer,
19279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019280 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19281 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019282 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19283 msm_routing_get_port_mixer,
19284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019285 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19286 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019287 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19288 msm_routing_get_port_mixer,
19289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019290 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19291 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019292 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19293 msm_routing_get_port_mixer,
19294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019295 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19296 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019297 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19298 msm_routing_get_port_mixer,
19299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019300 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19301 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019302 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19303 msm_routing_get_port_mixer,
19304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019305 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19306 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019307 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19308 msm_routing_get_port_mixer,
19309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019310 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19311 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019312 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19313 msm_routing_get_port_mixer,
19314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019315 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19316 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019317 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19318 msm_routing_get_port_mixer,
19319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019320 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19321 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019322 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19323 msm_routing_get_port_mixer,
19324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019325 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19326 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019327 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19328 msm_routing_get_port_mixer,
19329 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019330 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19331 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19332 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19333 msm_routing_get_port_mixer,
19334 msm_routing_put_port_mixer),
19335 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19336 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19337 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19338 msm_routing_get_port_mixer,
19339 msm_routing_put_port_mixer),
19340 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19341 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19342 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19343 msm_routing_get_port_mixer,
19344 msm_routing_put_port_mixer),
19345 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19346 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19347 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19348 msm_routing_get_port_mixer,
19349 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019350};
19351
19352static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019353 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19354 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019355 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19356 msm_routing_get_port_mixer,
19357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019358 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19359 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019360 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19361 msm_routing_get_port_mixer,
19362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019363 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19364 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019365 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19366 msm_routing_get_port_mixer,
19367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019368 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19369 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019370 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19371 msm_routing_get_port_mixer,
19372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019373 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19374 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019375 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19376 msm_routing_get_port_mixer,
19377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019378 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19379 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019380 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19381 msm_routing_get_port_mixer,
19382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019383 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19384 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019385 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19386 msm_routing_get_port_mixer,
19387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019388 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19389 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019390 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19391 msm_routing_get_port_mixer,
19392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019393 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19394 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019395 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19396 msm_routing_get_port_mixer,
19397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019398 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19399 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019400 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19401 msm_routing_get_port_mixer,
19402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019403 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19404 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019405 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19406 msm_routing_get_port_mixer,
19407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019408 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19409 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019410 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19411 msm_routing_get_port_mixer,
19412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019413 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19414 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019415 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19416 msm_routing_get_port_mixer,
19417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019418 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19419 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019420 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19421 msm_routing_get_port_mixer,
19422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019423 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19424 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019425 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19426 msm_routing_get_port_mixer,
19427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019428 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19429 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019430 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19431 msm_routing_get_port_mixer,
19432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019433 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19434 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019435 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19436 msm_routing_get_port_mixer,
19437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019438 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19439 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019440 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19441 msm_routing_get_port_mixer,
19442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019443 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19444 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019445 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19446 msm_routing_get_port_mixer,
19447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019448 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19449 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019450 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19451 msm_routing_get_port_mixer,
19452 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019453 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19454 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19455 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19456 msm_routing_get_port_mixer,
19457 msm_routing_put_port_mixer),
19458 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19459 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19460 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19461 msm_routing_get_port_mixer,
19462 msm_routing_put_port_mixer),
19463 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19464 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19465 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19466 msm_routing_get_port_mixer,
19467 msm_routing_put_port_mixer),
19468 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19469 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19470 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19471 msm_routing_get_port_mixer,
19472 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019473};
19474
19475static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019476 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19477 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019478 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19479 msm_routing_get_port_mixer,
19480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019481 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19482 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019483 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19484 msm_routing_get_port_mixer,
19485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019486 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19487 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019488 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19489 msm_routing_get_port_mixer,
19490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019491 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19492 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019493 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19494 msm_routing_get_port_mixer,
19495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019496 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19497 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019498 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19499 msm_routing_get_port_mixer,
19500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019501 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19502 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019503 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19504 msm_routing_get_port_mixer,
19505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019506 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19507 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019508 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19509 msm_routing_get_port_mixer,
19510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019511 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19512 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019513 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19514 msm_routing_get_port_mixer,
19515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019516 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19517 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019518 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19519 msm_routing_get_port_mixer,
19520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019521 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19522 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019523 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19524 msm_routing_get_port_mixer,
19525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019526 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19527 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019528 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19529 msm_routing_get_port_mixer,
19530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019531 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19532 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019533 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19534 msm_routing_get_port_mixer,
19535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019536 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19537 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019538 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19539 msm_routing_get_port_mixer,
19540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019541 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19542 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019543 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19544 msm_routing_get_port_mixer,
19545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019546 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19547 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019548 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19549 msm_routing_get_port_mixer,
19550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019551 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19552 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019553 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19554 msm_routing_get_port_mixer,
19555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019556 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19557 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019558 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19559 msm_routing_get_port_mixer,
19560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019561 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19562 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019563 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19564 msm_routing_get_port_mixer,
19565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019566 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19567 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019568 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19569 msm_routing_get_port_mixer,
19570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019571 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19572 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019573 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19574 msm_routing_get_port_mixer,
19575 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019576 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19577 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19578 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19579 msm_routing_get_port_mixer,
19580 msm_routing_put_port_mixer),
19581 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19582 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19583 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19584 msm_routing_get_port_mixer,
19585 msm_routing_put_port_mixer),
19586 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19587 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19588 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19589 msm_routing_get_port_mixer,
19590 msm_routing_put_port_mixer),
19591 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19592 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19593 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19594 msm_routing_get_port_mixer,
19595 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019596};
19597
19598static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019599 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19600 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019601 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19602 msm_routing_get_port_mixer,
19603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019604 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19605 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019606 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19607 msm_routing_get_port_mixer,
19608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019609 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19610 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019611 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19612 msm_routing_get_port_mixer,
19613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019614 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19615 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019616 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19617 msm_routing_get_port_mixer,
19618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019619 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19620 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019621 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19622 msm_routing_get_port_mixer,
19623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019624 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19625 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019626 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19627 msm_routing_get_port_mixer,
19628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019629 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19630 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019631 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19632 msm_routing_get_port_mixer,
19633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019634 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19635 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019636 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19637 msm_routing_get_port_mixer,
19638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019639 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19640 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019641 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19642 msm_routing_get_port_mixer,
19643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019644 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19645 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019646 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19647 msm_routing_get_port_mixer,
19648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019649 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19650 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019651 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19652 msm_routing_get_port_mixer,
19653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019654 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19655 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019656 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19657 msm_routing_get_port_mixer,
19658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019659 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19660 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019661 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19662 msm_routing_get_port_mixer,
19663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019664 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19665 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019666 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19667 msm_routing_get_port_mixer,
19668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019669 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19670 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019671 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19672 msm_routing_get_port_mixer,
19673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019674 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19675 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019676 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19677 msm_routing_get_port_mixer,
19678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019679 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19680 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019681 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19682 msm_routing_get_port_mixer,
19683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019684 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19685 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019686 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19687 msm_routing_get_port_mixer,
19688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019689 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19690 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019691 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19692 msm_routing_get_port_mixer,
19693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019694 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19695 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019696 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19697 msm_routing_get_port_mixer,
19698 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019699 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19700 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19701 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19702 msm_routing_get_port_mixer,
19703 msm_routing_put_port_mixer),
19704 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19705 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19706 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19707 msm_routing_get_port_mixer,
19708 msm_routing_put_port_mixer),
19709 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19710 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19711 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19712 msm_routing_get_port_mixer,
19713 msm_routing_put_port_mixer),
19714 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19715 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19716 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19717 msm_routing_get_port_mixer,
19718 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019719};
19720
19721static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019722 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19723 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019724 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19725 msm_routing_get_port_mixer,
19726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019727 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19728 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019729 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19730 msm_routing_get_port_mixer,
19731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019732 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19733 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019734 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19735 msm_routing_get_port_mixer,
19736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019737 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19738 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019739 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19740 msm_routing_get_port_mixer,
19741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019742 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19743 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019744 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19745 msm_routing_get_port_mixer,
19746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019747 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19748 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019749 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19750 msm_routing_get_port_mixer,
19751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019752 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19753 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019754 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19755 msm_routing_get_port_mixer,
19756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019757 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19758 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019759 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19760 msm_routing_get_port_mixer,
19761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019762 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19763 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019764 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19765 msm_routing_get_port_mixer,
19766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019767 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19768 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019769 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19770 msm_routing_get_port_mixer,
19771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019772 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19773 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019774 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19775 msm_routing_get_port_mixer,
19776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019777 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19778 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019779 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19780 msm_routing_get_port_mixer,
19781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019782 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19783 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019784 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19785 msm_routing_get_port_mixer,
19786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019787 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19788 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019789 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19790 msm_routing_get_port_mixer,
19791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019792 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19793 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019794 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19795 msm_routing_get_port_mixer,
19796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019797 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19798 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019799 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19800 msm_routing_get_port_mixer,
19801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019802 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19803 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019804 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19805 msm_routing_get_port_mixer,
19806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019807 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19808 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019809 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19810 msm_routing_get_port_mixer,
19811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019812 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19813 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019814 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19815 msm_routing_get_port_mixer,
19816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019817 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19818 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019819 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19820 msm_routing_get_port_mixer,
19821 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019822 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19823 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19824 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19825 msm_routing_get_port_mixer,
19826 msm_routing_put_port_mixer),
19827 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19828 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19829 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19830 msm_routing_get_port_mixer,
19831 msm_routing_put_port_mixer),
19832 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19833 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19834 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19835 msm_routing_get_port_mixer,
19836 msm_routing_put_port_mixer),
19837 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19838 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19839 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19840 msm_routing_get_port_mixer,
19841 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019842};
19843
19844static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019845 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19846 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019847 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19848 msm_routing_get_port_mixer,
19849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019850 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19851 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019852 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19853 msm_routing_get_port_mixer,
19854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019855 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19856 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019857 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19858 msm_routing_get_port_mixer,
19859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019860 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19861 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019862 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19863 msm_routing_get_port_mixer,
19864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019865 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19866 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019867 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19868 msm_routing_get_port_mixer,
19869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019870 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19871 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019872 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19873 msm_routing_get_port_mixer,
19874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019875 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19876 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019877 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19878 msm_routing_get_port_mixer,
19879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019880 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19881 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019882 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19883 msm_routing_get_port_mixer,
19884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019885 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19886 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019887 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19888 msm_routing_get_port_mixer,
19889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019890 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19891 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019892 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19893 msm_routing_get_port_mixer,
19894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019895 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19896 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019897 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19898 msm_routing_get_port_mixer,
19899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019900 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19901 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019902 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19903 msm_routing_get_port_mixer,
19904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019905 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19906 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019907 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19908 msm_routing_get_port_mixer,
19909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019910 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19911 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019912 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19913 msm_routing_get_port_mixer,
19914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019915 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19916 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019917 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19918 msm_routing_get_port_mixer,
19919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019920 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19921 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019922 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19923 msm_routing_get_port_mixer,
19924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019925 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19926 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019927 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19928 msm_routing_get_port_mixer,
19929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019930 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19931 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019932 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19933 msm_routing_get_port_mixer,
19934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019935 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19936 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019937 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19938 msm_routing_get_port_mixer,
19939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019940 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19941 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019942 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19943 msm_routing_get_port_mixer,
19944 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019945 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19946 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19947 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19948 msm_routing_get_port_mixer,
19949 msm_routing_put_port_mixer),
19950 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19951 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19952 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19953 msm_routing_get_port_mixer,
19954 msm_routing_put_port_mixer),
19955 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19956 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19957 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19958 msm_routing_get_port_mixer,
19959 msm_routing_put_port_mixer),
19960 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19961 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19962 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19963 msm_routing_get_port_mixer,
19964 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019965};
19966
19967static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019968 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19969 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019970 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19971 msm_routing_get_port_mixer,
19972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019973 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19974 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019975 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19976 msm_routing_get_port_mixer,
19977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019978 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19979 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019980 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19981 msm_routing_get_port_mixer,
19982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019983 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19984 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019985 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19986 msm_routing_get_port_mixer,
19987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019988 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19989 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019990 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19991 msm_routing_get_port_mixer,
19992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019993 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19994 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019995 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19996 msm_routing_get_port_mixer,
19997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019998 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19999 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020000 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20001 msm_routing_get_port_mixer,
20002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020003 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20004 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020005 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20006 msm_routing_get_port_mixer,
20007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020008 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20009 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020010 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20011 msm_routing_get_port_mixer,
20012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020013 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20014 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020015 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20016 msm_routing_get_port_mixer,
20017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020018 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20019 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020020 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20021 msm_routing_get_port_mixer,
20022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020023 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20024 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020025 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20026 msm_routing_get_port_mixer,
20027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020028 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20029 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020030 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20031 msm_routing_get_port_mixer,
20032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020033 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20034 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020035 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20036 msm_routing_get_port_mixer,
20037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020038 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20039 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020040 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20041 msm_routing_get_port_mixer,
20042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020043 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20044 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020045 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20046 msm_routing_get_port_mixer,
20047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020048 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20049 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020050 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20051 msm_routing_get_port_mixer,
20052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020053 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20054 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020055 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20056 msm_routing_get_port_mixer,
20057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020058 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20059 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020060 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20061 msm_routing_get_port_mixer,
20062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020063 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20064 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020065 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20066 msm_routing_get_port_mixer,
20067 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020068 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20069 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20070 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20071 msm_routing_get_port_mixer,
20072 msm_routing_put_port_mixer),
20073 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20074 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20075 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20076 msm_routing_get_port_mixer,
20077 msm_routing_put_port_mixer),
20078 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20079 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20080 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20081 msm_routing_get_port_mixer,
20082 msm_routing_put_port_mixer),
20083 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20084 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20085 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20086 msm_routing_get_port_mixer,
20087 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020088};
20089
Derek Chenb9048cb2019-03-07 14:54:13 -050020090static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
20091 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20092 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
20093 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20094 msm_routing_get_port_mixer,
20095 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070020096 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20097 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
20098 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20099 msm_routing_get_port_mixer,
20100 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050020101};
20102
Rohit Kumara5077932017-09-10 22:05:05 +053020103static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020104 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20105 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020106 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20107 msm_routing_get_port_mixer,
20108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020109 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20110 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020111 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20112 msm_routing_get_port_mixer,
20113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020114 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20115 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020116 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20117 msm_routing_get_port_mixer,
20118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020119 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20120 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020121 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20122 msm_routing_get_port_mixer,
20123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020124 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20125 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020126 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20127 msm_routing_get_port_mixer,
20128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020129 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20130 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020131 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20132 msm_routing_get_port_mixer,
20133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020134 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20135 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020136 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20137 msm_routing_get_port_mixer,
20138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020139 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20140 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020141 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20142 msm_routing_get_port_mixer,
20143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020144 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20145 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020146 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20147 msm_routing_get_port_mixer,
20148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020149 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20150 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020151 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20152 msm_routing_get_port_mixer,
20153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020154 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20155 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020156 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20157 msm_routing_get_port_mixer,
20158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020159 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20160 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020161 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20162 msm_routing_get_port_mixer,
20163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020164 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20165 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020166 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20167 msm_routing_get_port_mixer,
20168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020169 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20170 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020171 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20172 msm_routing_get_port_mixer,
20173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020174 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20175 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020176 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20177 msm_routing_get_port_mixer,
20178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020179 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20180 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020181 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20182 msm_routing_get_port_mixer,
20183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020184 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20185 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020186 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20187 msm_routing_get_port_mixer,
20188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020189 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20190 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020191 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20192 msm_routing_get_port_mixer,
20193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020194 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20195 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020196 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20197 msm_routing_get_port_mixer,
20198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020199 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20200 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020201 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20202 msm_routing_get_port_mixer,
20203 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020204 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20205 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20206 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20207 msm_routing_get_port_mixer,
20208 msm_routing_put_port_mixer),
20209 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20210 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20211 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20212 msm_routing_get_port_mixer,
20213 msm_routing_put_port_mixer),
20214 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20215 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20216 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20217 msm_routing_get_port_mixer,
20218 msm_routing_put_port_mixer),
20219 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20220 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20221 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20222 msm_routing_get_port_mixer,
20223 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020224};
20225
20226static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020227 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20228 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020229 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20230 msm_routing_get_port_mixer,
20231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020232 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20233 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020234 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20235 msm_routing_get_port_mixer,
20236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020237 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20238 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020239 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20240 msm_routing_get_port_mixer,
20241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020242 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20243 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020244 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20245 msm_routing_get_port_mixer,
20246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020247 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20248 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020249 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20250 msm_routing_get_port_mixer,
20251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020252 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20253 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020254 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20255 msm_routing_get_port_mixer,
20256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020257 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20258 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020259 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20260 msm_routing_get_port_mixer,
20261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020262 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20263 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020264 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20265 msm_routing_get_port_mixer,
20266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020267 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20268 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020269 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20270 msm_routing_get_port_mixer,
20271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020272 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20273 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020274 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20275 msm_routing_get_port_mixer,
20276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020277 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20278 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020279 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20280 msm_routing_get_port_mixer,
20281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020282 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20283 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020284 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20285 msm_routing_get_port_mixer,
20286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020287 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20288 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020289 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20290 msm_routing_get_port_mixer,
20291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020292 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20293 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020294 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20295 msm_routing_get_port_mixer,
20296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020297 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20298 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020299 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20300 msm_routing_get_port_mixer,
20301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020302 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20303 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020304 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20305 msm_routing_get_port_mixer,
20306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020307 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20308 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020309 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20310 msm_routing_get_port_mixer,
20311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020312 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20313 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020314 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20315 msm_routing_get_port_mixer,
20316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020317 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20318 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020319 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20320 msm_routing_get_port_mixer,
20321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020322 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20323 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020324 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20325 msm_routing_get_port_mixer,
20326 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020327 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20328 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20329 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20330 msm_routing_get_port_mixer,
20331 msm_routing_put_port_mixer),
20332 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20333 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20334 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20335 msm_routing_get_port_mixer,
20336 msm_routing_put_port_mixer),
20337 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20338 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20339 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20340 msm_routing_get_port_mixer,
20341 msm_routing_put_port_mixer),
20342 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20343 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20344 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20345 msm_routing_get_port_mixer,
20346 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020347};
20348
20349static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020350 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20351 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020352 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20353 msm_routing_get_port_mixer,
20354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020355 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20356 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020357 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20358 msm_routing_get_port_mixer,
20359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020360 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20361 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020362 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20363 msm_routing_get_port_mixer,
20364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020365 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20366 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020367 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20368 msm_routing_get_port_mixer,
20369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020370 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20371 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020372 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20373 msm_routing_get_port_mixer,
20374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020375 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20376 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020377 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20378 msm_routing_get_port_mixer,
20379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020380 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20381 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020382 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20383 msm_routing_get_port_mixer,
20384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020385 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20386 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020387 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20388 msm_routing_get_port_mixer,
20389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020390 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20391 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020392 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20393 msm_routing_get_port_mixer,
20394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020395 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20396 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020397 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20398 msm_routing_get_port_mixer,
20399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020400 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20401 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020402 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20403 msm_routing_get_port_mixer,
20404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020405 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20406 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020407 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20408 msm_routing_get_port_mixer,
20409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020410 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20411 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020412 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20413 msm_routing_get_port_mixer,
20414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020415 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20416 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020417 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20418 msm_routing_get_port_mixer,
20419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020420 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20421 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020422 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20423 msm_routing_get_port_mixer,
20424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020425 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20426 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020427 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20428 msm_routing_get_port_mixer,
20429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020430 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20431 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020432 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20433 msm_routing_get_port_mixer,
20434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020435 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20436 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020437 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20438 msm_routing_get_port_mixer,
20439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020440 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20441 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020442 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20443 msm_routing_get_port_mixer,
20444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020445 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20446 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020447 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20448 msm_routing_get_port_mixer,
20449 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020450 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20451 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20452 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20453 msm_routing_get_port_mixer,
20454 msm_routing_put_port_mixer),
20455 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20456 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20457 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20458 msm_routing_get_port_mixer,
20459 msm_routing_put_port_mixer),
20460 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20461 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20462 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20463 msm_routing_get_port_mixer,
20464 msm_routing_put_port_mixer),
20465 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20466 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20467 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20468 msm_routing_get_port_mixer,
20469 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020470};
20471
20472static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020473 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20474 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020475 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20476 msm_routing_get_port_mixer,
20477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020478 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20479 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020480 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20481 msm_routing_get_port_mixer,
20482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020483 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20484 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020485 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20486 msm_routing_get_port_mixer,
20487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020488 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20489 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020490 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20491 msm_routing_get_port_mixer,
20492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020493 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20494 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020495 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20496 msm_routing_get_port_mixer,
20497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020498 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20499 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020500 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20501 msm_routing_get_port_mixer,
20502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020503 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20504 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020505 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20506 msm_routing_get_port_mixer,
20507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020508 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20509 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020510 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20511 msm_routing_get_port_mixer,
20512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020513 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20514 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020515 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20516 msm_routing_get_port_mixer,
20517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020518 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20519 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020520 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20521 msm_routing_get_port_mixer,
20522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020523 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20524 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020525 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20526 msm_routing_get_port_mixer,
20527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020528 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20529 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020530 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20531 msm_routing_get_port_mixer,
20532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020533 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20534 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020535 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20536 msm_routing_get_port_mixer,
20537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020538 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20539 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020540 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20541 msm_routing_get_port_mixer,
20542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020543 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20544 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020545 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20546 msm_routing_get_port_mixer,
20547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020548 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20549 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020550 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20551 msm_routing_get_port_mixer,
20552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020553 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20554 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020555 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20556 msm_routing_get_port_mixer,
20557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020558 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20559 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020560 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20561 msm_routing_get_port_mixer,
20562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020563 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20564 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020565 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20566 msm_routing_get_port_mixer,
20567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020568 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20569 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020570 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20571 msm_routing_get_port_mixer,
20572 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020573 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20574 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20575 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20576 msm_routing_get_port_mixer,
20577 msm_routing_put_port_mixer),
20578 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20579 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20580 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20581 msm_routing_get_port_mixer,
20582 msm_routing_put_port_mixer),
20583 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20584 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20585 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20586 msm_routing_get_port_mixer,
20587 msm_routing_put_port_mixer),
20588 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20589 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20590 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20591 msm_routing_get_port_mixer,
20592 msm_routing_put_port_mixer),
20593};
20594
20595static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
20596 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20597 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20598 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20599 msm_routing_get_port_mixer,
20600 msm_routing_put_port_mixer),
20601 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20602 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20603 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20604 msm_routing_get_port_mixer,
20605 msm_routing_put_port_mixer),
20606 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20607 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20608 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20609 msm_routing_get_port_mixer,
20610 msm_routing_put_port_mixer),
20611 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20612 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20613 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20614 msm_routing_get_port_mixer,
20615 msm_routing_put_port_mixer),
20616 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20617 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20618 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20619 msm_routing_get_port_mixer,
20620 msm_routing_put_port_mixer),
20621 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20622 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20623 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20624 msm_routing_get_port_mixer,
20625 msm_routing_put_port_mixer),
20626 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20627 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20628 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20629 msm_routing_get_port_mixer,
20630 msm_routing_put_port_mixer),
20631 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20632 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20633 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20634 msm_routing_get_port_mixer,
20635 msm_routing_put_port_mixer),
20636 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20637 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20638 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20639 msm_routing_get_port_mixer,
20640 msm_routing_put_port_mixer),
20641 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20642 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20643 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20644 msm_routing_get_port_mixer,
20645 msm_routing_put_port_mixer),
20646 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20647 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20648 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20649 msm_routing_get_port_mixer,
20650 msm_routing_put_port_mixer),
20651 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20652 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20653 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20654 msm_routing_get_port_mixer,
20655 msm_routing_put_port_mixer),
20656 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20657 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20658 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20659 msm_routing_get_port_mixer,
20660 msm_routing_put_port_mixer),
20661 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20662 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20663 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20664 msm_routing_get_port_mixer,
20665 msm_routing_put_port_mixer),
20666 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20667 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20668 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20669 msm_routing_get_port_mixer,
20670 msm_routing_put_port_mixer),
20671 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20672 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20673 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20674 msm_routing_get_port_mixer,
20675 msm_routing_put_port_mixer),
20676 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20677 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20678 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20679 msm_routing_get_port_mixer,
20680 msm_routing_put_port_mixer),
20681 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20682 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20683 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20684 msm_routing_get_port_mixer,
20685 msm_routing_put_port_mixer),
20686 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20687 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20688 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20689 msm_routing_get_port_mixer,
20690 msm_routing_put_port_mixer),
20691 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20692 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20693 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20694 msm_routing_get_port_mixer,
20695 msm_routing_put_port_mixer),
20696 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20697 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20698 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20699 msm_routing_get_port_mixer,
20700 msm_routing_put_port_mixer),
20701 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20702 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20703 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20704 msm_routing_get_port_mixer,
20705 msm_routing_put_port_mixer),
20706 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20707 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20708 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20709 msm_routing_get_port_mixer,
20710 msm_routing_put_port_mixer),
20711 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20712 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20713 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20714 msm_routing_get_port_mixer,
20715 msm_routing_put_port_mixer),
20716};
20717
20718static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20719 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20720 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20721 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20722 msm_routing_get_port_mixer,
20723 msm_routing_put_port_mixer),
20724 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20725 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20726 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20727 msm_routing_get_port_mixer,
20728 msm_routing_put_port_mixer),
20729 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20730 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20731 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20732 msm_routing_get_port_mixer,
20733 msm_routing_put_port_mixer),
20734 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20735 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20736 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20737 msm_routing_get_port_mixer,
20738 msm_routing_put_port_mixer),
20739 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20740 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20741 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20742 msm_routing_get_port_mixer,
20743 msm_routing_put_port_mixer),
20744 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20745 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20746 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20747 msm_routing_get_port_mixer,
20748 msm_routing_put_port_mixer),
20749 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20750 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20751 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20752 msm_routing_get_port_mixer,
20753 msm_routing_put_port_mixer),
20754 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20755 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20756 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20757 msm_routing_get_port_mixer,
20758 msm_routing_put_port_mixer),
20759 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20760 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20761 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20762 msm_routing_get_port_mixer,
20763 msm_routing_put_port_mixer),
20764 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20765 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20766 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20767 msm_routing_get_port_mixer,
20768 msm_routing_put_port_mixer),
20769 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20770 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20771 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20772 msm_routing_get_port_mixer,
20773 msm_routing_put_port_mixer),
20774 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20775 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20776 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20777 msm_routing_get_port_mixer,
20778 msm_routing_put_port_mixer),
20779 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20780 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20781 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20782 msm_routing_get_port_mixer,
20783 msm_routing_put_port_mixer),
20784 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20785 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20786 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20787 msm_routing_get_port_mixer,
20788 msm_routing_put_port_mixer),
20789 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20790 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20791 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20792 msm_routing_get_port_mixer,
20793 msm_routing_put_port_mixer),
20794 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20795 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20796 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20797 msm_routing_get_port_mixer,
20798 msm_routing_put_port_mixer),
20799 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20800 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20801 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20802 msm_routing_get_port_mixer,
20803 msm_routing_put_port_mixer),
20804 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20805 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20806 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20807 msm_routing_get_port_mixer,
20808 msm_routing_put_port_mixer),
20809 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20810 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20811 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20812 msm_routing_get_port_mixer,
20813 msm_routing_put_port_mixer),
20814 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20815 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20816 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20817 msm_routing_get_port_mixer,
20818 msm_routing_put_port_mixer),
20819 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20820 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20821 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20822 msm_routing_get_port_mixer,
20823 msm_routing_put_port_mixer),
20824 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20825 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20826 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20827 msm_routing_get_port_mixer,
20828 msm_routing_put_port_mixer),
20829 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20830 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20831 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20832 msm_routing_get_port_mixer,
20833 msm_routing_put_port_mixer),
20834 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20835 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20836 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20837 msm_routing_get_port_mixer,
20838 msm_routing_put_port_mixer),
20839};
20840
20841static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20842 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20843 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20844 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20845 msm_routing_get_port_mixer,
20846 msm_routing_put_port_mixer),
20847 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20848 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20849 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20850 msm_routing_get_port_mixer,
20851 msm_routing_put_port_mixer),
20852 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20853 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20854 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20855 msm_routing_get_port_mixer,
20856 msm_routing_put_port_mixer),
20857 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20858 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20859 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20860 msm_routing_get_port_mixer,
20861 msm_routing_put_port_mixer),
20862 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20863 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20864 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20865 msm_routing_get_port_mixer,
20866 msm_routing_put_port_mixer),
20867 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20868 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20869 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20870 msm_routing_get_port_mixer,
20871 msm_routing_put_port_mixer),
20872 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20873 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20874 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20875 msm_routing_get_port_mixer,
20876 msm_routing_put_port_mixer),
20877 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20878 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20879 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20880 msm_routing_get_port_mixer,
20881 msm_routing_put_port_mixer),
20882 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20883 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20884 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20885 msm_routing_get_port_mixer,
20886 msm_routing_put_port_mixer),
20887 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20888 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20889 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20890 msm_routing_get_port_mixer,
20891 msm_routing_put_port_mixer),
20892 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20893 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20894 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20895 msm_routing_get_port_mixer,
20896 msm_routing_put_port_mixer),
20897 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20898 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20899 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20900 msm_routing_get_port_mixer,
20901 msm_routing_put_port_mixer),
20902 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20903 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20904 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20905 msm_routing_get_port_mixer,
20906 msm_routing_put_port_mixer),
20907 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20908 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20909 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20910 msm_routing_get_port_mixer,
20911 msm_routing_put_port_mixer),
20912 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20913 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20914 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20915 msm_routing_get_port_mixer,
20916 msm_routing_put_port_mixer),
20917 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20918 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20919 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20920 msm_routing_get_port_mixer,
20921 msm_routing_put_port_mixer),
20922 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20923 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20924 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20925 msm_routing_get_port_mixer,
20926 msm_routing_put_port_mixer),
20927 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20928 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20929 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20930 msm_routing_get_port_mixer,
20931 msm_routing_put_port_mixer),
20932 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20933 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20934 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20935 msm_routing_get_port_mixer,
20936 msm_routing_put_port_mixer),
20937 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20938 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20939 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20940 msm_routing_get_port_mixer,
20941 msm_routing_put_port_mixer),
20942 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20943 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20944 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20945 msm_routing_get_port_mixer,
20946 msm_routing_put_port_mixer),
20947 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20948 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20949 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20950 msm_routing_get_port_mixer,
20951 msm_routing_put_port_mixer),
20952 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20953 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20954 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20955 msm_routing_get_port_mixer,
20956 msm_routing_put_port_mixer),
20957 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20958 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20959 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20960 msm_routing_get_port_mixer,
20961 msm_routing_put_port_mixer),
20962};
20963
20964static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20965 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20966 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20967 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20968 msm_routing_get_port_mixer,
20969 msm_routing_put_port_mixer),
20970 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20971 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20972 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20973 msm_routing_get_port_mixer,
20974 msm_routing_put_port_mixer),
20975 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20976 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20977 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20978 msm_routing_get_port_mixer,
20979 msm_routing_put_port_mixer),
20980 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20981 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20982 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20983 msm_routing_get_port_mixer,
20984 msm_routing_put_port_mixer),
20985 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20986 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20987 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20988 msm_routing_get_port_mixer,
20989 msm_routing_put_port_mixer),
20990 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20991 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20992 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20993 msm_routing_get_port_mixer,
20994 msm_routing_put_port_mixer),
20995 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20996 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20997 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20998 msm_routing_get_port_mixer,
20999 msm_routing_put_port_mixer),
21000 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
21001 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21002 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
21003 msm_routing_get_port_mixer,
21004 msm_routing_put_port_mixer),
21005 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21006 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21007 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
21008 msm_routing_get_port_mixer,
21009 msm_routing_put_port_mixer),
21010 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
21011 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21012 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
21013 msm_routing_get_port_mixer,
21014 msm_routing_put_port_mixer),
21015 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
21016 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21017 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
21018 msm_routing_get_port_mixer,
21019 msm_routing_put_port_mixer),
21020 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
21021 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21022 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
21023 msm_routing_get_port_mixer,
21024 msm_routing_put_port_mixer),
21025 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
21026 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21027 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
21028 msm_routing_get_port_mixer,
21029 msm_routing_put_port_mixer),
21030 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
21031 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21032 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
21033 msm_routing_get_port_mixer,
21034 msm_routing_put_port_mixer),
21035 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
21036 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21037 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
21038 msm_routing_get_port_mixer,
21039 msm_routing_put_port_mixer),
21040 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
21041 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21042 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
21043 msm_routing_get_port_mixer,
21044 msm_routing_put_port_mixer),
21045 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21046 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21047 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
21048 msm_routing_get_port_mixer,
21049 msm_routing_put_port_mixer),
21050 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
21051 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21052 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
21053 msm_routing_get_port_mixer,
21054 msm_routing_put_port_mixer),
21055 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
21056 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21057 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
21058 msm_routing_get_port_mixer,
21059 msm_routing_put_port_mixer),
21060 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
21061 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21062 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
21063 msm_routing_get_port_mixer,
21064 msm_routing_put_port_mixer),
21065 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
21066 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21067 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
21068 msm_routing_get_port_mixer,
21069 msm_routing_put_port_mixer),
21070 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
21071 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21072 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
21073 msm_routing_get_port_mixer,
21074 msm_routing_put_port_mixer),
21075 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
21076 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21077 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
21078 msm_routing_get_port_mixer,
21079 msm_routing_put_port_mixer),
21080 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
21081 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21082 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
21083 msm_routing_get_port_mixer,
21084 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021085};
21086
Han Lu7b6c5882019-06-09 16:03:21 +080021087static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070021088 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
21089 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21090 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
21091 msm_routing_get_port_mixer,
21092 msm_routing_put_port_mixer),
21093 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
21094 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21095 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
21096 msm_routing_get_port_mixer,
21097 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080021098 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
21099 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21100 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
21101 msm_routing_get_port_mixer,
21102 msm_routing_put_port_mixer),
21103};
21104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021105static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021106 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
21107 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021108 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021110 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21111 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021112 MSM_BACKEND_DAI_TERTIARY_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("SLIM_0_TX", SND_SOC_NOPM,
21115 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021116 MSM_BACKEND_DAI_SLIMBUS_0_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21119 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021120 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("QUIN_MI2S_TX", SND_SOC_NOPM,
21123 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053021124 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21125 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021126 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
21127 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
21128 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021130 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
21131 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021132 MSM_BACKEND_DAI_SECONDARY_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("SLIM_8_TX", SND_SOC_NOPM,
21135 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021136 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
21137 msm_routing_put_port_mixer),
21138};
21139
21140static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021141 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
21142 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021143 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021145 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
21146 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021147 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
21150 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021151 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21154 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021155 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
21158 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053021159 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21160 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021161 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
21162 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
21163 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021165 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
21166 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021167 MSM_BACKEND_DAI_SLIMBUS_0_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("INTERNAL_FM_TX", SND_SOC_NOPM,
21170 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021171 MSM_BACKEND_DAI_INT_FM_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("SLIM_8_TX", SND_SOC_NOPM,
21174 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021175 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
21178 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021179 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
21180 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021181};
21182
21183static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021184 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21185 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021186 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21187 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021188 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21189 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21193 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21197 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21201 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21205 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21209 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21213 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021216 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21217 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21218 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21219 msm_routing_put_listen_mixer),
21220 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21221 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21222 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21223 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021224 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21225 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21226 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21227 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021228 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21229 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21230 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21231 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021232 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21233 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21234 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21235 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021236 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21237 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21238 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21239 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021240};
21241
21242static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021243 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21244 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021245 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21246 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021247 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
21248 SND_SOC_NOPM,
21249 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021250 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21251 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021252 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21253 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21257 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21261 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21265 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21269 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21273 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021276 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21277 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21278 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21279 msm_routing_put_listen_mixer),
21280 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21281 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21282 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21283 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021284 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21285 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21286 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21287 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021288 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21289 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21290 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21291 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021292 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21293 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21294 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21295 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021296 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21297 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21298 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21299 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021300};
21301
21302static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021303 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21304 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021305 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21306 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021307 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21308 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21312 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21316 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21320 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21324 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21328 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21332 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021335 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21336 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21337 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21338 msm_routing_put_listen_mixer),
21339 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21340 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21341 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21342 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021343 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21344 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21345 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21346 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021347 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21348 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21349 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21350 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021351 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21352 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21353 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21354 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021355 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21356 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21357 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21358 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021359};
21360
21361static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021362 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21363 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021364 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21365 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021366 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21367 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21371 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21375 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21379 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21383 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21387 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21391 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021394 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21395 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21396 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21397 msm_routing_put_listen_mixer),
21398 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21399 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21400 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21401 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021402 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21403 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21404 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21405 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021406 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21407 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21408 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21409 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021410 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21411 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21412 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21413 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021414 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21415 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21416 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21417 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021418};
21419
21420static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021421 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21422 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021423 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21424 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021425 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21426 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21430 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21434 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21438 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21442 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21446 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21450 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021453 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21454 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21455 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21456 msm_routing_put_listen_mixer),
21457 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21458 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21459 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21460 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021461 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21462 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21463 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21464 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21467 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21468 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021469 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21470 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21471 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21472 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021473 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21474 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21475 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21476 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021477};
21478
21479static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021480 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21481 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021482 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21483 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021484 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21485 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21489 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21493 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21497 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21501 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21505 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21509 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021512 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21513 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21514 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21515 msm_routing_put_listen_mixer),
21516 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21517 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21518 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21519 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021520 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21521 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21522 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21523 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021524 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21525 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21526 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21527 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021528 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21529 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21530 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21531 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021532 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21533 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21534 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21535 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021536};
21537
21538static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021539 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21540 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021541 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21542 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021543 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21544 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21548 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21552 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21556 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21560 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21564 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21568 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021571 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21572 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21573 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21574 msm_routing_put_listen_mixer),
21575 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21576 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21577 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21578 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021579 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21580 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21581 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21582 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021583 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21584 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21585 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21586 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021587 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21588 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21589 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21590 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021591 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21592 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21593 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21594 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021595};
21596
21597static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021598 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21599 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021600 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21601 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021602 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21603 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21607 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21611 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21615 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21619 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21623 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21627 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021630 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21631 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21632 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21633 msm_routing_put_listen_mixer),
21634 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21635 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21636 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21637 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021638 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21639 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21640 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21641 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21644 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21645 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021646 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21647 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21648 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21649 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021650 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21651 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21652 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21653 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021654};
21655
21656static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
21657 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21658 0, 1, 0, msm_routing_get_switch_mixer,
21659 msm_routing_put_switch_mixer);
21660
21661static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
21662 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21663 0, 1, 0, msm_routing_get_switch_mixer,
21664 msm_routing_put_switch_mixer);
21665
21666static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
21667 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21668 0, 1, 0, msm_routing_get_switch_mixer,
21669 msm_routing_put_switch_mixer);
21670
21671static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
21672 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21673 0, 1, 0, msm_routing_get_switch_mixer,
21674 msm_routing_put_switch_mixer);
21675
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021676static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
21677 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21678 0, 1, 0, msm_routing_get_switch_mixer,
21679 msm_routing_put_switch_mixer);
21680
21681static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021682 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21683 0, 1, 0, msm_routing_get_switch_mixer,
21684 msm_routing_put_switch_mixer);
21685
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021686static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
21687 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21688 0, 1, 0, msm_routing_get_switch_mixer,
21689 msm_routing_put_switch_mixer);
21690
21691static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
21692 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21693 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
21694 msm_routing_put_fm_pcmrx_switch_mixer);
21695
21696static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
21697 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21698 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
21699 msm_routing_put_int0_mi2s_switch_mixer);
21700
21701static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
21702 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21703 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
21704 msm_routing_put_int4_mi2s_switch_mixer);
21705
21706static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21707 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21708 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21709 msm_routing_put_pri_mi2s_switch_mixer);
21710
21711static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21712 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21713 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21714 msm_routing_put_sec_mi2s_switch_mixer);
21715
21716static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21717 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21718 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21719 msm_routing_put_tert_mi2s_switch_mixer);
21720
21721static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21722 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21723 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21724 msm_routing_put_quat_mi2s_switch_mixer);
21725
Rohit Kumara5077932017-09-10 22:05:05 +053021726static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21727 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21728 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21729 msm_routing_put_quin_mi2s_switch_mixer);
21730
Karthikeyan Manic3700752019-03-11 18:33:53 -070021731static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21732 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21733 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21734 msm_routing_put_sen_mi2s_switch_mixer);
21735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021736static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
21737 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21738 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21739 msm_routing_put_hfp_switch_mixer);
21740
21741static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
21742 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21743 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21744 msm_routing_put_hfp_switch_mixer);
21745
21746static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21747 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21748 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21749 msm_routing_put_hfp_switch_mixer);
21750
21751static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21752 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21753 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21754 msm_routing_put_hfp_switch_mixer);
21755
21756static const struct snd_kcontrol_new usb_switch_mixer_controls =
21757 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21758 0, 1, 0, msm_routing_get_usb_switch_mixer,
21759 msm_routing_put_usb_switch_mixer);
21760
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021761static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21762 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21763 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21764 msm_routing_a2dp_switch_mixer_put);
21765
Zhou Songcaa541d2019-02-19 18:37:47 +080021766static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21767 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21768 0, 1, 0, msm_routing_sco_switch_mixer_get,
21769 msm_routing_sco_switch_mixer_put);
21770
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021771static const struct soc_enum lsm_port_enum =
21772 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21773
21774static const char * const lsm_func_text[] = {
21775 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21776};
21777static const struct soc_enum lsm_func_enum =
21778 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21779
21780static const struct snd_kcontrol_new lsm_controls[] = {
21781 /* kcontrol of lsm_function */
21782 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21783 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21784 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21785 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21786 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21787 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21788 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21789 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21790 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21791 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21792 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21793 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21794 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21795 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21796 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21797 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21798 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21799 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021800 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21801 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021802 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21803 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Guodong Hu395166b2019-10-10 16:56:28 +080021804 SOC_ENUM_EXT(TERT_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21805 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021806 /* kcontrol of lsm_port */
21807 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21808 msm_routing_lsm_port_get,
21809 msm_routing_lsm_port_put),
21810 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21811 msm_routing_lsm_port_get,
21812 msm_routing_lsm_port_put),
21813 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21814 msm_routing_lsm_port_get,
21815 msm_routing_lsm_port_put),
21816 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21817 msm_routing_lsm_port_get,
21818 msm_routing_lsm_port_put),
21819 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21820 msm_routing_lsm_port_get,
21821 msm_routing_lsm_port_put),
21822 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21823 msm_routing_lsm_port_get,
21824 msm_routing_lsm_port_put),
21825 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21826 msm_routing_lsm_port_get,
21827 msm_routing_lsm_port_put),
21828 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21829 msm_routing_lsm_port_get,
21830 msm_routing_lsm_port_put),
21831};
21832
21833static const char * const aanc_slim_0_rx_text[] = {
21834 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21835 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21836};
21837
21838static const struct soc_enum aanc_slim_0_rx_enum =
21839 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21840 aanc_slim_0_rx_text);
21841
21842static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21843 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21844 msm_routing_slim_0_rx_aanc_mux_get,
21845 msm_routing_slim_0_rx_aanc_mux_put)
21846};
21847
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021848static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21849 struct snd_ctl_elem_value *ucontrol)
21850{
21851 ucontrol->value.integer.value[0] = aanc_level;
21852
21853 return 0;
21854}
21855
21856static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21857 struct snd_ctl_elem_value *ucontrol)
21858{
21859 int ret = 0;
21860
21861 mutex_lock(&routing_lock);
21862 aanc_level = ucontrol->value.integer.value[0];
21863 pr_debug("%s: value: %ld\n",
21864 __func__, ucontrol->value.integer.value[0]);
21865 ret = afe_set_aanc_noise_level(aanc_level);
21866 mutex_unlock(&routing_lock);
21867
21868 return ret;
21869}
21870
21871static const struct snd_kcontrol_new aanc_noise_level[] = {
21872 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21873 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21874};
21875
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021876static int msm_routing_get_stereo_to_custom_stereo_control(
21877 struct snd_kcontrol *kcontrol,
21878 struct snd_ctl_elem_value *ucontrol)
21879{
21880 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21881 return 0;
21882}
21883
21884static int msm_routing_put_stereo_to_custom_stereo_control(
21885 struct snd_kcontrol *kcontrol,
21886 struct snd_ctl_elem_value *ucontrol)
21887{
21888 int flag = 0, i = 0, rc = 0, idx = 0;
21889 int be_index = 0, port_id, topo_id;
21890 unsigned int session_id = 0;
21891 uint16_t op_FL_ip_FL_weight = 0;
21892 uint16_t op_FL_ip_FR_weight = 0;
21893 uint16_t op_FR_ip_FL_weight = 0;
21894 uint16_t op_FR_ip_FR_weight = 0;
21895
21896 flag = ucontrol->value.integer.value[0];
21897 pr_debug("%s E flag %d\n", __func__, flag);
21898
21899 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21900 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21901 __func__, is_custom_stereo_on, flag);
21902 return 0;
21903 }
21904 is_custom_stereo_on = flag ? true : false;
21905 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21906 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21907 port_id = msm_bedais[be_index].port_id;
21908 if (!msm_bedais[be_index].active)
21909 continue;
21910 if ((port_id != SLIMBUS_0_RX) &&
21911 (port_id != RT_PROXY_PORT_001_RX) &&
21912 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21913 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21914 continue;
21915
21916 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21917 MSM_FRONTEND_DAI_MM_SIZE) {
21918 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21919 LEGACY_PCM_MODE)
21920 goto skip_send_custom_stereo;
21921 session_id =
21922 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21923 if (is_custom_stereo_on) {
21924 op_FL_ip_FL_weight =
21925 Q14_GAIN_ZERO_POINT_FIVE;
21926 op_FL_ip_FR_weight =
21927 Q14_GAIN_ZERO_POINT_FIVE;
21928 op_FR_ip_FL_weight =
21929 Q14_GAIN_ZERO_POINT_FIVE;
21930 op_FR_ip_FR_weight =
21931 Q14_GAIN_ZERO_POINT_FIVE;
21932 } else {
21933 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21934 op_FL_ip_FR_weight = 0;
21935 op_FR_ip_FL_weight = 0;
21936 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21937 }
21938 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21939 unsigned long copp =
21940 session_copp_map[i]
21941 [SESSION_TYPE_RX][be_index];
21942 if (!test_bit(idx, &copp))
21943 goto skip_send_custom_stereo;
21944 topo_id = adm_get_topology_for_port_copp_idx(
21945 msm_bedais[be_index].port_id, idx);
21946 if (topo_id < 0)
21947 pr_debug("%s:Err:custom stereo topo %d",
21948 __func__, topo_id);
21949 pr_debug("idx %d\n", idx);
21950 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21951 rc = msm_ds2_dap_set_custom_stereo_onoff
21952 (msm_bedais[be_index].port_id,
21953 idx, is_custom_stereo_on);
21954 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21955 rc = dolby_dap_set_custom_stereo_onoff(
21956 msm_bedais[be_index].port_id,
21957 idx, is_custom_stereo_on);
21958 else
21959 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21960 (msm_bedais[be_index].port_id,
21961 idx, session_id,
21962 op_FL_ip_FL_weight,
21963 op_FL_ip_FR_weight,
21964 op_FR_ip_FL_weight,
21965 op_FR_ip_FR_weight);
21966 if (rc < 0)
21967skip_send_custom_stereo:
21968 pr_err("%s: err setting custom stereo\n",
21969 __func__);
21970 }
21971
21972 }
21973 }
21974 return 0;
21975}
21976
21977static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21978 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21979 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21980 msm_routing_put_stereo_to_custom_stereo_control),
21981};
21982
21983static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21984 struct snd_ctl_elem_value *ucontrol)
21985{
21986 return 0;
21987}
21988
21989static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21990 struct snd_ctl_elem_value *ucontrol)
21991{
21992 int i = 0, j;
21993 int num_app_types = ucontrol->value.integer.value[i++];
21994
21995 pr_debug("%s\n", __func__);
21996
21997 memset(app_type_cfg, 0, MAX_APP_TYPES*
21998 sizeof(struct msm_pcm_routing_app_type_data));
21999 if (num_app_types > MAX_APP_TYPES) {
22000 pr_err("%s: number of app types exceed the max supported\n",
22001 __func__);
22002 return -EINVAL;
22003 }
22004 for (j = 0; j < num_app_types; j++) {
22005 app_type_cfg[j].app_type =
22006 ucontrol->value.integer.value[i++];
22007 app_type_cfg[j].sample_rate =
22008 ucontrol->value.integer.value[i++];
22009 app_type_cfg[j].bit_width =
22010 ucontrol->value.integer.value[i++];
22011 }
22012
22013 return 0;
22014}
22015
22016static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
22017 struct snd_ctl_elem_value *ucontrol)
22018{
22019 int j, fe_id, be_id, port_type;
22020 int ret = 0;
22021 unsigned long copp;
22022 struct msm_pcm_routing_bdai_data *bedai;
22023 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
22024 SESSION_TYPE_RX;
22025 int app_type = ucontrol->value.integer.value[1];
22026 int gain = (ucontrol->value.integer.value[2] +
22027 ucontrol->value.integer.value[3])/2;
22028
22029 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
22030 MSM_AFE_PORT_TYPE_TX;
22031
22032 mutex_lock(&routing_lock);
22033 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
22034 if (is_be_dai_extproc(be_id))
22035 continue;
22036
22037 bedai = &msm_bedais[be_id];
22038 if (afe_get_port_type(bedai->port_id) != port_type)
22039 continue;
22040
22041 if (!bedai->active)
22042 continue;
22043
22044 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
22045 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
22046 continue;
22047
22048 if (app_type !=
22049 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
22050 continue;
22051
22052 copp = session_copp_map[fe_id][dir][be_id];
22053 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
22054 if (!test_bit(j, &copp))
22055 continue;
22056 ret |= adm_set_volume(bedai->port_id, j, gain);
22057 }
22058 }
22059 }
22060 mutex_unlock(&routing_lock);
22061 return ret ? -EINVAL : 0;
22062}
22063
22064static const struct snd_kcontrol_new app_type_cfg_controls[] = {
22065 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080022066 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022067 msm_routing_put_app_type_cfg_control),
22068 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
22069 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
22070};
22071
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022072static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
22073 struct snd_ctl_elem_value *ucontrol)
22074{
22075 int copp_idx, fe_id, be_id, port_type;
22076 int ret = 0;
22077 unsigned long copp;
22078 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022079 u8 *packed_params = NULL;
22080 struct param_hdr_v3 param_hdr;
22081 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
22082 sizeof(uint32_t));
22083
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022084 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
22085 SESSION_TYPE_RX;
22086 int app_type = ucontrol->value.integer.value[1];
22087 int module_id = ucontrol->value.integer.value[2];
22088 int instance_id = ucontrol->value.integer.value[3];
22089 int param_id = ucontrol->value.integer.value[4];
22090 int param_value = ucontrol->value.integer.value[5];
22091
22092 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
22093 MSM_AFE_PORT_TYPE_TX;
22094 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
22095 __func__, app_type, module_id,
22096 instance_id, param_id, param_value);
22097
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022098 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
22099 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022100 return -ENOMEM;
22101
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022102 memset(&param_hdr, 0, sizeof(param_hdr));
22103 param_hdr.module_id = module_id;
22104 param_hdr.instance_id = instance_id;
22105 param_hdr.param_id = param_id;
22106 param_hdr.param_size = sizeof(uint32_t);
22107
22108 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022109
22110 mutex_lock(&routing_lock);
22111 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
22112 if (is_be_dai_extproc(be_id))
22113 continue;
22114
22115 bedai = &msm_bedais[be_id];
22116 if (afe_get_port_type(bedai->port_id) != port_type)
22117 continue;
22118
22119 if (!bedai->active)
22120 continue;
22121
22122 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
22123 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
22124 continue;
22125
22126 if (app_type !=
22127 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
22128 continue;
22129
22130 copp = session_copp_map[fe_id][dir][be_id];
22131 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
22132 copp_idx++) {
22133 if (!test_bit(copp_idx, &copp))
22134 continue;
22135
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022136 ret = q6common_pack_pp_params(packed_params,
22137 &param_hdr,
22138 (u8 *) &param_value,
22139 &packed_param_size);
22140 if (ret) {
22141 pr_err("%s: Failed to pack params, error %d\n",
22142 __func__, ret);
22143 goto done;
22144 }
22145
22146 ret = adm_set_pp_params(bedai->port_id,
22147 copp_idx, NULL,
22148 packed_params,
22149 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022150 if (ret) {
22151 pr_err("%s: Setting param failed with err=%d\n",
22152 __func__, ret);
22153 ret = -EINVAL;
22154 goto done;
22155 }
22156 }
22157 }
22158 }
22159done:
22160 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022161 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022162 return ret;
22163}
22164
22165static const struct snd_kcontrol_new module_cfg_controls[] = {
22166 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
22167 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
22168};
22169
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022170static int msm_routing_get_lsm_app_type_cfg_control(
22171 struct snd_kcontrol *kcontrol,
22172 struct snd_ctl_elem_value *ucontrol)
22173{
Meng Wangadbca4f2018-10-29 14:30:13 +080022174 int shift = ((struct soc_multi_mixer_control *)
22175 kcontrol->private_value)->shift;
22176 int i = 0, j = 0;
22177
22178 ucontrol->value.integer.value[i] = num_app_cfg_types;
22179
22180 for (j = 0; j < num_app_cfg_types; ++j) {
22181 ucontrol->value.integer.value[++i] =
22182 lsm_app_type_cfg[j].app_type;
22183 ucontrol->value.integer.value[++i] =
22184 lsm_app_type_cfg[j].sample_rate;
22185 ucontrol->value.integer.value[++i] =
22186 lsm_app_type_cfg[j].bit_width;
22187 if (shift == 1)
22188 ucontrol->value.integer.value[++i] =
22189 lsm_app_type_cfg[j].num_out_channels;
22190 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022191 return 0;
22192}
22193
22194static int msm_routing_put_lsm_app_type_cfg_control(
22195 struct snd_kcontrol *kcontrol,
22196 struct snd_ctl_elem_value *ucontrol)
22197{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022198 int shift = ((struct soc_multi_mixer_control *)
22199 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022200 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022201
Ajit Pandey248ce562019-09-06 10:51:02 +053022202 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022203 pr_err("%s: number of app types exceed the max supported\n",
22204 __func__);
22205 return -EINVAL;
22206 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022207
Ajit Pandey248ce562019-09-06 10:51:02 +053022208 num_app_cfg_types = ucontrol->value.integer.value[i++];
22209 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
22210 sizeof(struct msm_pcm_routing_app_type_data));
22211
Meng Wangadbca4f2018-10-29 14:30:13 +080022212 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022213 lsm_app_type_cfg[j].app_type =
22214 ucontrol->value.integer.value[i++];
22215 lsm_app_type_cfg[j].sample_rate =
22216 ucontrol->value.integer.value[i++];
22217 lsm_app_type_cfg[j].bit_width =
22218 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022219 /* Shift of 1 indicates this is V2 mixer control */
22220 if (shift == 1)
22221 lsm_app_type_cfg[j].num_out_channels =
22222 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022223 }
22224
22225 return 0;
22226}
22227
22228static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
22229 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
22230 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
22231 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022232 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
22233 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
22234 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022235};
22236
22237static int msm_routing_get_use_ds1_or_ds2_control(
22238 struct snd_kcontrol *kcontrol,
22239 struct snd_ctl_elem_value *ucontrol)
22240{
22241 ucontrol->value.integer.value[0] = is_ds2_on;
22242 return 0;
22243}
22244
22245static int msm_routing_put_use_ds1_or_ds2_control(
22246 struct snd_kcontrol *kcontrol,
22247 struct snd_ctl_elem_value *ucontrol)
22248{
22249 is_ds2_on = ucontrol->value.integer.value[0];
22250 return 0;
22251}
22252
22253static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
22254 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
22255 1, 0, msm_routing_get_use_ds1_or_ds2_control,
22256 msm_routing_put_use_ds1_or_ds2_control),
22257};
22258
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053022259static int msm_routing_get_hifi_filter_control(
22260 struct snd_kcontrol *kcontrol,
22261 struct snd_ctl_elem_value *ucontrol)
22262{
22263 ucontrol->value.integer.value[0] = hifi_filter_enabled;
22264 return 0;
22265}
22266
22267static int msm_routing_put_hifi_filter_control(
22268 struct snd_kcontrol *kcontrol,
22269 struct snd_ctl_elem_value *ucontrol)
22270{
22271 hifi_filter_enabled = ucontrol->value.integer.value[0];
22272 return 0;
22273}
22274
22275static const struct snd_kcontrol_new hifi_filter_controls[] = {
22276 SOC_SINGLE_EXT("HiFi Filter", SND_SOC_NOPM, 0,
22277 1, 0, msm_routing_get_hifi_filter_control,
22278 msm_routing_put_hifi_filter_control),
22279};
22280
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022281int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
22282 struct snd_ctl_elem_value *ucontrol) {
22283 int rc = 0;
22284 int be_idx = 0;
22285 char *param_value;
22286 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022287 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
22288 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022289
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022290 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022291 if (!param_value)
22292 return -ENOMEM;
22293
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022294 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022295 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
22296 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
22297 break;
22298 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022299 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
22300 param_hdr.instance_id = INSTANCE_ID_0;
22301 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
22302 param_hdr.param_size = param_size;
22303 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
22304 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022305 if (rc) {
22306 pr_err("%s: get parameters failed:%d\n", __func__, rc);
22307 kfree(param_value);
22308 return -EINVAL;
22309 }
22310 update_param_value = (int *)param_value;
22311 ucontrol->value.integer.value[0] = update_param_value[0];
22312
22313 pr_debug("%s: FROM DSP value[0] 0x%x\n",
22314 __func__, update_param_value[0]);
22315 }
22316 kfree(param_value);
22317 return 0;
22318}
22319
22320static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
22321 struct snd_ctl_elem_value *ucontrol)
22322{
22323 voc_session_id = ucontrol->value.integer.value[0];
22324
22325 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
22326
22327 return 0;
22328}
22329
22330static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
22331 struct snd_ctl_elem_value *ucontrol)
22332{
22333 ucontrol->value.integer.value[0] = voc_session_id;
22334
22335 return 0;
22336}
22337
22338static struct snd_kcontrol_new msm_voc_session_controls[] = {
22339 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
22340 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
22341 msm_voc_session_id_put),
22342};
22343
22344static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
22345 struct snd_ctl_elem_info *uinfo)
22346{
22347 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22348 uinfo->count = sizeof(struct sound_focus_param);
22349
22350 return 0;
22351}
22352
22353static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
22354 struct snd_ctl_elem_value *ucontrol)
22355{
22356 int ret = 0;
22357 struct sound_focus_param soundFocusData;
22358
22359 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22360 sizeof(struct sound_focus_param));
22361 ret = voc_set_sound_focus(soundFocusData);
22362 if (ret) {
22363 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22364 __func__, ret);
22365
22366 ret = -EINVAL;
22367 }
22368
22369 return ret;
22370}
22371
22372static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
22373 struct snd_ctl_elem_value *ucontrol)
22374{
22375 int ret = 0;
22376 struct sound_focus_param soundFocusData;
22377
22378 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
22379
22380 ret = voc_get_sound_focus(&soundFocusData);
22381 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022382 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022383 __func__, ret);
22384
22385 ret = -EINVAL;
22386 goto done;
22387 }
22388 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22389 sizeof(struct sound_focus_param));
22390
22391done:
22392 return ret;
22393}
22394
22395static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
22396 struct snd_ctl_elem_info *uinfo)
22397{
22398 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22399 uinfo->count = sizeof(struct source_tracking_param);
22400
22401 return 0;
22402}
22403
22404static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
22405 struct snd_ctl_elem_value *ucontrol)
22406{
Meng Wang92edfde2018-04-24 12:18:37 +080022407 int ret = 0;
22408 struct source_tracking_param sourceTrackingData;
22409
22410 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
22411
22412 ret = voc_get_source_tracking(&sourceTrackingData);
22413 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022414 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080022415 __func__, ret);
22416
22417 ret = -EINVAL;
22418 goto done;
22419 }
22420 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22421 sizeof(struct source_tracking_param));
22422
22423done:
22424 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022425}
22426
22427static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
22428 int *copp_idx)
22429{
22430 int i, idx, be_idx;
22431 int ret = 0;
22432 unsigned long copp;
22433
22434 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
22435
22436 ret = q6audio_validate_port(port_id);
22437 if (ret < 0) {
22438 pr_err("%s: port validation failed id 0x%x ret %d\n",
22439 __func__, port_id, ret);
22440
22441 ret = -EINVAL;
22442 goto done;
22443 }
22444
22445 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22446 if (msm_bedais[be_idx].port_id == port_id)
22447 break;
22448 }
22449 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22450 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
22451
22452 ret = -EINVAL;
22453 goto done;
22454 }
22455
22456 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022457 MSM_FRONTEND_DAI_MAX) {
22458 if (!(is_mm_lsm_fe_id(i) &&
22459 route_check_fe_id_adm_support(i)))
22460 continue;
22461
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022462 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22463 copp = session_copp_map[i]
22464 [session_type][be_idx];
22465 if (test_bit(idx, &copp))
22466 break;
22467 }
22468 if (idx >= MAX_COPPS_PER_PORT)
22469 continue;
22470 else
22471 break;
22472 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022473 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022474 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022475
22476 ret = -EINVAL;
22477 goto done;
22478 }
22479 *copp_idx = idx;
22480 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
22481
22482done:
22483 return ret;
22484}
22485
22486static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
22487 const char *prefix, int *port_id)
22488{
22489 int ret = 0;
22490
22491 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
22492
22493 /*
22494 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
22495 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
22496 * and compare the string with the backend name to derive the port id.
22497 */
22498 if (!strcmp(kcontrol->id.name + strlen(prefix),
22499 "SLIMBUS_0")) {
22500 *port_id = SLIMBUS_0_TX;
22501 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22502 "TERT_MI2S")) {
22503 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
22504 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22505 "INT3_MI2S")) {
22506 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022507 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22508 "VA_CDC_DMA_TX_0")) {
22509 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022510 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22511 "TX_CDC_DMA_TX_3")) {
22512 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022513 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22514 "QUIN_TDM_TX_0")) {
22515 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022516 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22517 "PRIMARY_TDM")) {
22518 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022519 } else {
22520 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
22521 __func__, kcontrol->id.name);
22522
22523 ret = -EINVAL;
22524 goto done;
22525 }
22526 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
22527 __func__, kcontrol->id.name, *port_id);
22528
22529done:
22530 return ret;
22531}
22532
22533static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
22534 struct snd_ctl_elem_value *ucontrol)
22535{
22536 int ret = 0;
22537 struct sound_focus_param soundFocusData;
22538 int port_id, copp_idx;
22539
22540 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22541 "Sound Focus Audio Tx ", &port_id);
22542 if (ret != 0) {
22543 pr_err("%s: Error in deriving port id, err=%d\n",
22544 __func__, ret);
22545
22546 ret = -EINVAL;
22547 goto done;
22548 }
22549
22550 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22551 &copp_idx);
22552 if (ret) {
22553 pr_err("%s: Could not get copp idx for port_id=%d\n",
22554 __func__, port_id);
22555
22556 ret = -EINVAL;
22557 goto done;
22558 }
22559
22560 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22561 sizeof(struct sound_focus_param));
22562
22563 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
22564 if (ret) {
22565 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22566 __func__, ret);
22567
22568 ret = -EINVAL;
22569 goto done;
22570 }
22571
22572done:
22573 return ret;
22574}
22575
22576static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
22577 struct snd_ctl_elem_value *ucontrol)
22578{
22579 int ret = 0;
22580 struct sound_focus_param soundFocusData;
22581 int port_id, copp_idx;
22582
22583 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22584 "Sound Focus Audio Tx ", &port_id);
22585 if (ret) {
22586 pr_err("%s: Error in deriving port id, err=%d\n",
22587 __func__, ret);
22588
22589 ret = -EINVAL;
22590 goto done;
22591 }
22592
22593 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22594 &copp_idx);
22595 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022596 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022597 __func__, port_id);
22598
22599 ret = -EINVAL;
22600 goto done;
22601 }
22602
22603 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
22604 if (ret) {
22605 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
22606 __func__, ret);
22607
22608 ret = -EINVAL;
22609 goto done;
22610 }
22611
22612 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22613 sizeof(struct sound_focus_param));
22614
22615done:
22616 return ret;
22617}
22618
22619static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
22620 struct snd_ctl_elem_value *ucontrol)
22621{
22622 int ret = 0;
22623 struct source_tracking_param sourceTrackingData;
22624 int port_id, copp_idx;
22625
22626 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22627 "Source Tracking Audio Tx ", &port_id);
22628 if (ret) {
22629 pr_err("%s: Error in deriving port id, err=%d\n",
22630 __func__, ret);
22631
22632 ret = -EINVAL;
22633 goto done;
22634 }
22635
22636 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22637 &copp_idx);
22638 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022639 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022640 __func__, port_id);
22641
22642 ret = -EINVAL;
22643 goto done;
22644 }
22645
22646 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
22647 if (ret) {
22648 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
22649 __func__, ret);
22650
22651 ret = -EINVAL;
22652 goto done;
22653 }
22654
22655 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22656 sizeof(struct source_tracking_param));
22657
22658done:
22659 return ret;
22660}
22661
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022662static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
22663 struct snd_ctl_elem_info *uinfo)
22664{
22665 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22666 uinfo->count = sizeof(struct doa_tracking_mon_param);
22667
22668 return 0;
22669}
22670
22671static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
22672 struct snd_ctl_elem_value *ucontrol)
22673{
22674 int ret = 0;
22675 struct doa_tracking_mon_param doa_tracking_data;
22676 int port_id, copp_idx;
22677
22678 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
22679 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22680 "Doa Tracking Monitor Listen ", &port_id);
22681 if (ret) {
22682 pr_err("%s: Error in deriving port id, err=%d\n",
22683 __func__, ret);
22684 ret = -EINVAL;
22685 goto done;
22686 }
22687
22688 /*
22689 * If copp id exists for given port id, query adm to get doa data.
22690 * Else query afe for doa tracking params.
22691 * This is to support in cases where LSM directly connects to
22692 * AFE for FFNS.
22693 */
22694 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22695 &copp_idx);
22696 if (!ret)
22697 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
22698 &doa_tracking_data);
22699 else
22700 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
22701
22702 if (ret) {
22703 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
22704 __func__, ret);
22705 ret = -EINVAL;
22706 goto done;
22707 }
22708
22709 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
22710 sizeof(struct doa_tracking_mon_param));
22711done:
22712 return ret;
22713}
22714
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022715static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
22716 {
22717 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22718 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22719 .name = "Sound Focus Voice Tx SLIMBUS_0",
22720 .info = msm_sound_focus_info,
22721 .get = msm_voice_sound_focus_get,
22722 .put = msm_voice_sound_focus_put,
22723 },
22724 {
22725 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22726 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22727 .name = "Source Tracking Voice Tx SLIMBUS_0",
22728 .info = msm_source_tracking_info,
22729 .get = msm_voice_source_tracking_get,
22730 },
22731 {
22732 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22733 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22734 .name = "Sound Focus Audio Tx SLIMBUS_0",
22735 .info = msm_sound_focus_info,
22736 .get = msm_audio_sound_focus_get,
22737 .put = msm_audio_sound_focus_put,
22738 },
22739 {
22740 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22741 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22742 .name = "Source Tracking Audio Tx SLIMBUS_0",
22743 .info = msm_source_tracking_info,
22744 .get = msm_audio_source_tracking_get,
22745 },
22746 {
22747 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22748 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22749 .name = "Sound Focus Voice Tx TERT_MI2S",
22750 .info = msm_sound_focus_info,
22751 .get = msm_voice_sound_focus_get,
22752 .put = msm_voice_sound_focus_put,
22753 },
22754 {
22755 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22756 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22757 .name = "Source Tracking Voice Tx TERT_MI2S",
22758 .info = msm_source_tracking_info,
22759 .get = msm_voice_source_tracking_get,
22760 },
22761 {
22762 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22763 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22764 .name = "Sound Focus Audio Tx TERT_MI2S",
22765 .info = msm_sound_focus_info,
22766 .get = msm_audio_sound_focus_get,
22767 .put = msm_audio_sound_focus_put,
22768 },
22769 {
22770 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22771 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22772 .name = "Source Tracking Audio Tx TERT_MI2S",
22773 .info = msm_source_tracking_info,
22774 .get = msm_audio_source_tracking_get,
22775 },
22776 {
22777 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22778 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22779 .name = "Sound Focus Voice Tx INT3_MI2S",
22780 .info = msm_sound_focus_info,
22781 .get = msm_voice_sound_focus_get,
22782 .put = msm_voice_sound_focus_put,
22783 },
22784 {
22785 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22786 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22787 .name = "Source Tracking Voice Tx INT3_MI2S",
22788 .info = msm_source_tracking_info,
22789 .get = msm_voice_source_tracking_get,
22790 },
22791 {
22792 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22793 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22794 .name = "Sound Focus Audio Tx INT3_MI2S",
22795 .info = msm_sound_focus_info,
22796 .get = msm_audio_sound_focus_get,
22797 .put = msm_audio_sound_focus_put,
22798 },
22799 {
22800 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22801 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22802 .name = "Source Tracking Audio Tx INT3_MI2S",
22803 .info = msm_source_tracking_info,
22804 .get = msm_audio_source_tracking_get,
22805 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022806 {
22807 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22808 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22809 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22810 .info = msm_sound_focus_info,
22811 .get = msm_voice_sound_focus_get,
22812 .put = msm_voice_sound_focus_put,
22813 },
22814 {
22815 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22816 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22817 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22818 .info = msm_source_tracking_info,
22819 .get = msm_voice_source_tracking_get,
22820 },
22821 {
22822 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22823 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22824 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22825 .info = msm_sound_focus_info,
22826 .get = msm_audio_sound_focus_get,
22827 .put = msm_audio_sound_focus_put,
22828 },
22829 {
22830 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22831 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22832 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22833 .info = msm_source_tracking_info,
22834 .get = msm_audio_source_tracking_get,
22835 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022836 {
22837 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22838 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22839 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22840 .info = msm_sound_focus_info,
22841 .get = msm_voice_sound_focus_get,
22842 .put = msm_voice_sound_focus_put,
22843 },
22844 {
22845 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22846 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22847 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22848 .info = msm_source_tracking_info,
22849 .get = msm_voice_source_tracking_get,
22850 },
22851 {
22852 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22853 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22854 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22855 .info = msm_sound_focus_info,
22856 .get = msm_audio_sound_focus_get,
22857 .put = msm_audio_sound_focus_put,
22858 },
22859 {
22860 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22861 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22862 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22863 .info = msm_source_tracking_info,
22864 .get = msm_audio_source_tracking_get,
22865 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022866 {
22867 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22868 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22869 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22870 .info = msm_sound_focus_info,
22871 .get = msm_voice_sound_focus_get,
22872 .put = msm_voice_sound_focus_put,
22873 },
22874 {
22875 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22876 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22877 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22878 .info = msm_source_tracking_info,
22879 .get = msm_voice_source_tracking_get,
22880 },
22881 {
22882 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22883 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22884 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22885 .info = msm_sound_focus_info,
22886 .get = msm_audio_sound_focus_get,
22887 .put = msm_audio_sound_focus_put,
22888 },
22889 {
22890 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22891 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22892 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22893 .info = msm_source_tracking_info,
22894 .get = msm_audio_source_tracking_get,
22895 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022896 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022897 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22898 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22899 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22900 .info = msm_sound_focus_info,
22901 .get = msm_audio_sound_focus_get,
22902 .put = msm_audio_sound_focus_put,
22903 },
22904 {
22905 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22906 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22907 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22908 .info = msm_source_tracking_info,
22909 .get = msm_audio_source_tracking_get,
22910 },
22911 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022912 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22913 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22914 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22915 .info = msm_doa_tracking_mon_info,
22916 .get = msm_doa_tracking_mon_get,
22917 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022918};
22919
22920static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22921 struct snd_ctl_elem_value *ucontrol)
22922{
22923 int ret = 0;
22924 int item;
22925 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22926
22927 pr_debug("%s item is %d\n", __func__,
22928 ucontrol->value.enumerated.item[0]);
22929 mutex_lock(&routing_lock);
22930 item = ucontrol->value.enumerated.item[0];
22931 if (item < e->items) {
22932 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22933 __func__, e->shift_l, e->values[item]);
22934 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22935 e->values[item] < MSM_BACKEND_DAI_MAX)
22936 /* Enable feedback TX path */
22937 ret = afe_spk_prot_feed_back_cfg(
22938 msm_bedais[e->values[item]].port_id,
22939 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22940 else {
22941 pr_debug("%s values are out of range item %d\n",
22942 __func__, e->values[item]);
22943 /* Disable feedback TX path */
22944 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22945 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22946 else
22947 ret = -EINVAL;
22948 }
22949 } else {
22950 pr_err("%s item value is out of range item\n", __func__);
22951 ret = -EINVAL;
22952 }
22953 mutex_unlock(&routing_lock);
22954 return ret;
22955}
22956
22957static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22958 struct snd_ctl_elem_value *ucontrol)
22959{
22960 int ret = 0;
22961 int item;
22962 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22963
22964 pr_debug("%s item is %d\n", __func__,
22965 ucontrol->value.enumerated.item[0]);
22966 mutex_lock(&routing_lock);
22967 item = ucontrol->value.enumerated.item[0];
22968 if (item < e->items) {
22969 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22970 __func__, e->shift_l, e->values[item]);
22971 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22972 e->values[item] < MSM_BACKEND_DAI_MAX)
22973 /* Enable feedback TX path */
22974 ret = afe_spk_prot_feed_back_cfg(
22975 msm_bedais[e->values[item]].port_id,
22976 msm_bedais[e->shift_l].port_id,
22977 1, 1, 1);
22978 else {
22979 pr_debug("%s values are out of range item %d\n",
22980 __func__, e->values[item]);
22981 /* Disable feedback TX path */
22982 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22983 ret = afe_spk_prot_feed_back_cfg(0,
22984 0, 0, 0, 0);
22985 else
22986 ret = -EINVAL;
22987 }
22988 } else {
22989 pr_err("%s item value is out of range item\n", __func__);
22990 ret = -EINVAL;
22991 }
22992 mutex_unlock(&routing_lock);
22993 return ret;
22994}
22995
22996static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22997 struct snd_ctl_elem_value *ucontrol)
22998{
22999 pr_debug("%s\n", __func__);
23000 return 0;
23001}
23002
23003static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
23004 struct snd_ctl_elem_value *ucontrol)
23005{
23006 pr_debug("%s\n", __func__);
23007 ucontrol->value.enumerated.item[0] = 0;
23008 return 0;
23009}
23010
23011static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
23012 "ZERO", "SLIM4_TX"
23013};
23014
23015static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
23016 "ZERO", "SLIM4_TX"
23017};
23018
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023019static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
23020 "ZERO", "WSA_CDC_DMA_TX_0"
23021};
23022
23023static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
23024 "ZERO", "WSA_CDC_DMA_TX_0"
23025};
23026
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023027static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
23028 "ZERO", "SENARY_TX"
23029};
23030
23031static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
23032 "ZERO", "INT5_MI2S_TX"
23033};
23034
23035static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
23036 "ZERO", "INT5_MI2S_TX"
23037};
23038
Josh Kirschea69fed2018-12-11 16:15:08 -080023039static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023040 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
23041};
23042
Josh Kirschea69fed2018-12-11 16:15:08 -080023043static const int slim0_rx_vi_fb_tx_rch_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 wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023048 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
23049};
23050
Josh Kirschea69fed2018-12-11 16:15:08 -080023051static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023052 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
23053};
23054
23055
Josh Kirschea69fed2018-12-11 16:15:08 -080023056static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023057 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
23058};
23059
Josh Kirschea69fed2018-12-11 16:15:08 -080023060static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023061 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
23062};
23063
Josh Kirschea69fed2018-12-11 16:15:08 -080023064static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023065 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
23066};
23067
23068static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
23069 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
23070 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
23071 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
23072
23073static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
23074 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
23075 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
23076 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
23077
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023078static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
23079 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
23080 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
23081 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
23082
23083static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
23084 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
23085 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
23086 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
23087
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023088static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
23089 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
23090 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
23091 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
23092
23093static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
23094 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
23095 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
23096 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
23097 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
23098
23099static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
23100 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
23101 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
23102 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
23103 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
23104
23105static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
23106 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
23107 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
23108 spkr_prot_put_vi_lch_port);
23109
23110static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
23111 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
23112 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
23113 spkr_prot_put_vi_rch_port);
23114
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023115static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
23116 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
23117 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
23118 spkr_prot_put_vi_lch_port);
23119
23120static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
23121 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
23122 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
23123 spkr_prot_put_vi_rch_port);
23124
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023125static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
23126 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
23127 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
23128 spkr_prot_put_vi_lch_port);
23129
23130static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
23131 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
23132 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
23133 spkr_prot_put_vi_lch_port);
23134
23135static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
23136 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
23137 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
23138 spkr_prot_put_vi_rch_port);
23139
23140static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
23141 /* Frontend AIF */
23142 /* Widget name equals to Front-End DAI name<Need confirmation>,
23143 * Stream name must contains substring of front-end dai name
23144 */
23145 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
23146 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
23147 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
23148 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
23149 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
23150 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
23151 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
23152 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
23153 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
23154 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
23155 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
23156 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
23157 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
23158 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
23159 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
23160 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
23161 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023162 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070023163 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053023164 SND_SOC_DAPM_AIF_IN("MM_DL23", "MultiMedia23 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053023165 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023166 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
23167 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
23168 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
23169 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
23170 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
23171 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
23172 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
23173 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
23174 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023175 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023176 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023177 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
23178 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
23179 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
23180 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023181 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070023182 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053023183 SND_SOC_DAPM_AIF_OUT("MM_UL23", "MultiMedia23 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053023184 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080023185 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
23186 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053023187 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023188 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
23189 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
23190 "VoiceMMode1 Playback", 0, 0, 0, 0),
23191 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
23192 "VoiceMMode1 Capture", 0, 0, 0, 0),
23193 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
23194 "VoiceMMode2 Playback", 0, 0, 0, 0),
23195 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
23196 "VoiceMMode2 Capture", 0, 0, 0, 0),
23197 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
23198 0, 0, 0, 0),
23199 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
23200 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023201 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
23202 0, 0, 0, 0),
23203 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
23204 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023205 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
23206 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023207 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
23208 0, 0, 0, 0),
23209 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
23210 0, 0, 0, 0),
23211 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
23212 0, 0, 0, 0),
23213 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
23214 0, 0, 0, 0),
23215 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
23216 0, 0, 0, 0),
23217 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
23218 0, 0, 0, 0),
23219 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
23220 0, 0, 0, 0),
23221 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
23222 0, 0, 0, 0),
23223 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
23224 0, 0, 0, 0),
23225 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
23226 0, 0, 0, 0),
23227 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
23228 0, 0, 0, 0),
23229 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
23230 0, 0, 0, 0),
23231 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
23232 0, 0, 0, 0),
23233 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
23234 0, 0, 0, 0),
23235 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
23236 0, 0, 0, 0),
23237 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
23238 0, 0, 0, 0),
23239 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
23240 0, 0, 0, 0),
23241 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
23242 0, 0, 0, 0),
23243 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
23244 0, 0, 0, 0),
23245 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
23246 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
23247 0, 0, 0, 0),
23248 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
23249 "INT0 MI2S_RX Hostless Playback",
23250 0, 0, 0, 0),
23251 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
23252 "INT4 MI2S_RX Hostless Playback",
23253 0, 0, 0, 0),
23254 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
23255 "Primary MI2S_RX Hostless Playback",
23256 0, 0, 0, 0),
23257 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
23258 "Secondary MI2S_RX Hostless Playback",
23259 0, 0, 0, 0),
23260 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
23261 "Tertiary MI2S_RX Hostless Playback",
23262 0, 0, 0, 0),
23263 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
23264 "Quaternary MI2S_RX Hostless Playback",
23265 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023266 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
23267 "Quinary MI2S_RX Hostless Playback",
23268 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023269 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
23270 "Senary MI2S_RX Hostless Playback",
23271 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023272
23273 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
23274 0, 0, 0, 0),
23275 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
23276 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023277 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
23278 0, 0, 0, 0),
23279 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
23280 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023281 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
23282 0, 0, 0, 0),
23283 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
23284 "INT3 MI2S_TX Hostless Capture",
23285 0, 0, 0, 0),
23286 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
23287 "Tertiary MI2S_TX Hostless Capture",
23288 0, 0, 0, 0),
23289 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
23290 "Secondary MI2S_TX Hostless Capture",
23291 0, 0, 0, 0),
23292 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
23293 "Primary MI2S_TX Hostless Capture",
23294 0, 0, 0, 0),
23295 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
23296 0, 0, 0, 0),
23297 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
23298 0, 0, 0, 0),
23299 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
23300 "Quaternary MI2S_TX Hostless Capture",
23301 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023302 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
23303 "Quinary MI2S_TX Hostless Capture",
23304 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023305 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
23306 "Senary MI2S_TX Hostless Capture",
23307 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023308
23309 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
23310 "Primary TDM0 Hostless Playback",
23311 0, 0, 0, 0),
23312 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
23313 "Primary TDM0 Hostless Capture",
23314 0, 0, 0, 0),
23315 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
23316 "Primary TDM1 Hostless Playback",
23317 0, 0, 0, 0),
23318 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
23319 "Primary TDM1 Hostless Capture",
23320 0, 0, 0, 0),
23321 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
23322 "Primary TDM2 Hostless Playback",
23323 0, 0, 0, 0),
23324 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
23325 "Primary TDM2 Hostless Capture",
23326 0, 0, 0, 0),
23327 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
23328 "Primary TDM3 Hostless Playback",
23329 0, 0, 0, 0),
23330 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
23331 "Primary TDM3 Hostless Capture",
23332 0, 0, 0, 0),
23333 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
23334 "Primary TDM4 Hostless Playback",
23335 0, 0, 0, 0),
23336 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
23337 "Primary TDM4 Hostless Capture",
23338 0, 0, 0, 0),
23339 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
23340 "Primary TDM5 Hostless Playback",
23341 0, 0, 0, 0),
23342 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
23343 "Primary TDM5 Hostless Capture",
23344 0, 0, 0, 0),
23345 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
23346 "Primary TDM6 Hostless Playback",
23347 0, 0, 0, 0),
23348 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
23349 "Primary TDM6 Hostless Capture",
23350 0, 0, 0, 0),
23351 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
23352 "Primary TDM7 Hostless Playback",
23353 0, 0, 0, 0),
23354 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
23355 "Primary TDM7 Hostless Capture",
23356 0, 0, 0, 0),
23357 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
23358 "Secondary TDM0 Hostless Playback",
23359 0, 0, 0, 0),
23360 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
23361 "Secondary TDM0 Hostless Capture",
23362 0, 0, 0, 0),
23363 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
23364 "Secondary TDM1 Hostless Playback",
23365 0, 0, 0, 0),
23366 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
23367 "Secondary TDM1 Hostless Capture",
23368 0, 0, 0, 0),
23369 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
23370 "Secondary TDM2 Hostless Playback",
23371 0, 0, 0, 0),
23372 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
23373 "Secondary TDM2 Hostless Capture",
23374 0, 0, 0, 0),
23375 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
23376 "Secondary TDM3 Hostless Playback",
23377 0, 0, 0, 0),
23378 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
23379 "Secondary TDM3 Hostless Capture",
23380 0, 0, 0, 0),
23381 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
23382 "Secondary TDM4 Hostless Playback",
23383 0, 0, 0, 0),
23384 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
23385 "Secondary TDM4 Hostless Capture",
23386 0, 0, 0, 0),
23387 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
23388 "Secondary TDM5 Hostless Playback",
23389 0, 0, 0, 0),
23390 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
23391 "Secondary TDM5 Hostless Capture",
23392 0, 0, 0, 0),
23393 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
23394 "Secondary TDM6 Hostless Playback",
23395 0, 0, 0, 0),
23396 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
23397 "Secondary TDM6 Hostless Capture",
23398 0, 0, 0, 0),
23399 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
23400 "Secondary TDM7 Hostless Playback",
23401 0, 0, 0, 0),
23402 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
23403 "Secondary TDM7 Hostless Capture",
23404 0, 0, 0, 0),
23405 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
23406 "Tertiary TDM0 Hostless Playback",
23407 0, 0, 0, 0),
23408 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
23409 "Tertiary TDM0 Hostless Capture",
23410 0, 0, 0, 0),
23411 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
23412 "Tertiary TDM1 Hostless Playback",
23413 0, 0, 0, 0),
23414 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
23415 "Tertiary TDM1 Hostless Capture",
23416 0, 0, 0, 0),
23417 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
23418 "Tertiary TDM2 Hostless Playback",
23419 0, 0, 0, 0),
23420 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
23421 "Tertiary TDM2 Hostless Capture",
23422 0, 0, 0, 0),
23423 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
23424 "Tertiary TDM3 Hostless Playback",
23425 0, 0, 0, 0),
23426 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
23427 "Tertiary TDM3 Hostless Capture",
23428 0, 0, 0, 0),
23429 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
23430 "Tertiary TDM4 Hostless Playback",
23431 0, 0, 0, 0),
23432 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
23433 "Tertiary TDM4 Hostless Capture",
23434 0, 0, 0, 0),
23435 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
23436 "Tertiary TDM5 Hostless Playback",
23437 0, 0, 0, 0),
23438 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
23439 "Tertiary TDM5 Hostless Capture",
23440 0, 0, 0, 0),
23441 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
23442 "Tertiary TDM6 Hostless Playback",
23443 0, 0, 0, 0),
23444 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
23445 "Tertiary TDM6 Hostless Capture",
23446 0, 0, 0, 0),
23447 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
23448 "Tertiary TDM7 Hostless Playback",
23449 0, 0, 0, 0),
23450 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
23451 "Tertiary TDM7 Hostless Capture",
23452 0, 0, 0, 0),
23453 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
23454 "Quaternary TDM0 Hostless Playback",
23455 0, 0, 0, 0),
23456 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
23457 "Quaternary TDM0 Hostless Capture",
23458 0, 0, 0, 0),
23459 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
23460 "Quaternary TDM1 Hostless Playback",
23461 0, 0, 0, 0),
23462 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
23463 "Quaternary TDM1 Hostless Capture",
23464 0, 0, 0, 0),
23465 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
23466 "Quaternary TDM2 Hostless Playback",
23467 0, 0, 0, 0),
23468 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
23469 "Quaternary TDM2 Hostless Capture",
23470 0, 0, 0, 0),
23471 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
23472 "Quaternary TDM3 Hostless Playback",
23473 0, 0, 0, 0),
23474 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
23475 "Quaternary TDM3 Hostless Capture",
23476 0, 0, 0, 0),
23477 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
23478 "Quaternary TDM4 Hostless Playback",
23479 0, 0, 0, 0),
23480 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
23481 "Quaternary TDM4 Hostless Capture",
23482 0, 0, 0, 0),
23483 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
23484 "Quaternary TDM5 Hostless Playback",
23485 0, 0, 0, 0),
23486 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
23487 "Quaternary TDM5 Hostless Capture",
23488 0, 0, 0, 0),
23489 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
23490 "Quaternary TDM6 Hostless Playback",
23491 0, 0, 0, 0),
23492 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
23493 "Quaternary TDM6 Hostless Capture",
23494 0, 0, 0, 0),
23495 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
23496 "Quaternary TDM7 Hostless Playback",
23497 0, 0, 0, 0),
23498 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
23499 "Quaternary TDM7 Hostless Capture",
23500 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023501 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
23502 "Quinary TDM0 Hostless Playback",
23503 0, 0, 0, 0),
23504 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
23505 "Quinary TDM0 Hostless Capture",
23506 0, 0, 0, 0),
23507 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
23508 "Quinary TDM1 Hostless Playback",
23509 0, 0, 0, 0),
23510 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
23511 "Quinary TDM1 Hostless Capture",
23512 0, 0, 0, 0),
23513 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
23514 "Quinary TDM2 Hostless Playback",
23515 0, 0, 0, 0),
23516 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
23517 "Quinary TDM2 Hostless Capture",
23518 0, 0, 0, 0),
23519 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
23520 "Quinary TDM3 Hostless Playback",
23521 0, 0, 0, 0),
23522 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
23523 "Quinary TDM3 Hostless Capture",
23524 0, 0, 0, 0),
23525 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
23526 "Quinary TDM4 Hostless Playback",
23527 0, 0, 0, 0),
23528 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
23529 "Quinary TDM4 Hostless Capture",
23530 0, 0, 0, 0),
23531 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
23532 "Quinary TDM5 Hostless Playback",
23533 0, 0, 0, 0),
23534 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
23535 "Quinary TDM5 Hostless Capture",
23536 0, 0, 0, 0),
23537 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
23538 "Quinary TDM6 Hostless Playback",
23539 0, 0, 0, 0),
23540 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
23541 "Quinary TDM6 Hostless Capture",
23542 0, 0, 0, 0),
23543 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
23544 "Quinary TDM7 Hostless Playback",
23545 0, 0, 0, 0),
23546 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
23547 "Quinary TDM7 Hostless Capture",
23548 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023549 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
23550 "Senary TDM0 Hostless Playback",
23551 0, 0, 0, 0),
23552 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
23553 "Senary TDM0 Hostless Capture",
23554 0, 0, 0, 0),
23555 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
23556 "Senary TDM1 Hostless Playback",
23557 0, 0, 0, 0),
23558 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
23559 "Senary TDM1 Hostless Capture",
23560 0, 0, 0, 0),
23561 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
23562 "Senary TDM2 Hostless Playback",
23563 0, 0, 0, 0),
23564 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
23565 "Senary TDM2 Hostless Capture",
23566 0, 0, 0, 0),
23567 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
23568 "Senary TDM3 Hostless Playback",
23569 0, 0, 0, 0),
23570 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
23571 "Senary TDM3 Hostless Capture",
23572 0, 0, 0, 0),
23573 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
23574 "Senary TDM4 Hostless Playback",
23575 0, 0, 0, 0),
23576 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
23577 "Senary TDM4 Hostless Capture",
23578 0, 0, 0, 0),
23579 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
23580 "Senary TDM5 Hostless Playback",
23581 0, 0, 0, 0),
23582 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
23583 "Senary TDM5 Hostless Capture",
23584 0, 0, 0, 0),
23585 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
23586 "Senary TDM6 Hostless Playback",
23587 0, 0, 0, 0),
23588 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
23589 "Senary TDM6 Hostless Capture",
23590 0, 0, 0, 0),
23591 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
23592 "Senary TDM7 Hostless Playback",
23593 0, 0, 0, 0),
23594 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
23595 "Senary TDM7 Hostless Capture",
23596 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023597
23598 /* LSM */
23599 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
23600 0, 0, 0, 0),
23601 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
23602 0, 0, 0, 0),
23603 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
23604 0, 0, 0, 0),
23605 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
23606 0, 0, 0, 0),
23607 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
23608 0, 0, 0, 0),
23609 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
23610 0, 0, 0, 0),
23611 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
23612 0, 0, 0, 0),
23613 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
23614 0, 0, 0, 0),
23615 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
23616 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
23617 /* Backend AIF */
23618 /* Stream name equals to backend dai link stream name */
23619 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
23620 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
23621 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020023622 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
23623 0, 0, 0, 0),
23624 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
23625 0, 0, 0, 0),
23626 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
23627 0, 0, 0, 0),
23628 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
23629 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023630 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
23631 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
23632 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
23633 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
23634 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
23635 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023636 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
23637 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023638 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
23639 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
23640 0, 0, 0, 0),
23641 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
23642 0, 0, 0, 0),
23643 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
23644 0, 0, 0, 0),
23645 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
23646 "Secondary MI2S Playback SD1",
23647 0, 0, 0, 0),
23648 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
23649 0, 0, 0, 0),
23650 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
23651 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023652 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
23653 0, 0, 0, 0),
23654 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
23655 0, 0, 0, 0),
23656 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
23657 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023658 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
23659 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023660 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
23661 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023662 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
23663 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023664 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
23665 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023666 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
23667 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
23668 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
23669 0, 0, 0, 0),
23670 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
23671 0, 0, 0, 0),
23672 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
23673 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023674 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
23675 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023676 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
23677 0, 0, 0, 0),
23678 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
23679 0, 0, 0, 0),
23680 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
23681 0, 0, 0, 0),
23682 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
23683 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
23684 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
23685 0, 0, 0, 0),
23686 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
23687 0, 0, 0, 0),
23688 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
23689 0, 0, 0, 0),
23690 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
23691 0, 0, 0, 0),
23692 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
23693 0, 0, 0, 0),
23694 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
23695 0, 0, 0, 0),
23696 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
23697 0, 0, 0, 0),
23698 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
23699 0, 0, 0, 0),
23700 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
23701 0, 0, 0, 0),
23702 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
23703 0, 0, 0, 0),
23704 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
23705 0, 0, 0, 0),
23706 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
23707 0, 0, 0, 0),
23708 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
23709 0, 0, 0, 0),
23710 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
23711 0, 0, 0, 0),
23712 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
23713 0, 0, 0, 0),
23714 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
23715 0, 0, 0, 0),
23716 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
23717 0, 0, 0, 0),
23718 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
23719 0, 0, 0, 0),
23720 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
23721 0, 0, 0, 0),
23722 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
23723 0, 0, 0, 0),
23724 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
23725 0, 0, 0, 0),
23726 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
23727 0, 0, 0, 0),
23728 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
23729 0, 0, 0, 0),
23730 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23731 0, 0, 0, 0),
23732 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23733 0, 0, 0, 0),
23734 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23735 0, 0, 0, 0),
23736 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23737 0, 0, 0, 0),
23738 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23739 0, 0, 0, 0),
23740 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23741 0, 0, 0, 0),
23742 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23743 0, 0, 0, 0),
23744 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23745 0, 0, 0, 0),
23746 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23747 0, 0, 0, 0),
23748 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23749 0, 0, 0, 0),
23750 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23751 0, 0, 0, 0),
23752 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23753 0, 0, 0, 0),
23754 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23755 0, 0, 0, 0),
23756 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23757 0, 0, 0, 0),
23758 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23759 0, 0, 0, 0),
23760 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23761 0, 0, 0, 0),
23762 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23763 0, 0, 0, 0),
23764 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23765 0, 0, 0, 0),
23766 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23767 0, 0, 0, 0),
23768 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23769 0, 0, 0, 0),
23770 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23771 0, 0, 0, 0),
23772 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23773 0, 0, 0, 0),
23774 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23775 0, 0, 0, 0),
23776 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23777 0, 0, 0, 0),
23778 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23779 0, 0, 0, 0),
23780 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23781 0, 0, 0, 0),
23782 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23783 0, 0, 0, 0),
23784 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23785 0, 0, 0, 0),
23786 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23787 0, 0, 0, 0),
23788 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23789 0, 0, 0, 0),
23790 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23791 0, 0, 0, 0),
23792 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23793 0, 0, 0, 0),
23794 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23795 0, 0, 0, 0),
23796 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23797 0, 0, 0, 0),
23798 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23799 0, 0, 0, 0),
23800 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23801 0, 0, 0, 0),
23802 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23803 0, 0, 0, 0),
23804 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23805 0, 0, 0, 0),
23806 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23807 0, 0, 0, 0),
23808 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23809 0, 0, 0, 0),
23810 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23811 0, 0, 0, 0),
23812 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23813 0, 0, 0, 0),
23814 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23815 0, 0, 0, 0),
23816 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23817 0, 0, 0, 0),
23818 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23819 0, 0, 0, 0),
23820 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23821 0, 0, 0, 0),
23822 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23823 0, 0, 0, 0),
23824 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23825 0, 0, 0, 0),
23826 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23827 0, 0, 0, 0),
23828 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23829 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023830 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23831 0, 0, 0, 0),
23832 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23833 0, 0, 0, 0),
23834 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23835 0, 0, 0, 0),
23836 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23837 0, 0, 0, 0),
23838 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23839 0, 0, 0, 0),
23840 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23841 0, 0, 0, 0),
23842 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23843 0, 0, 0, 0),
23844 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23845 0, 0, 0, 0),
23846 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23847 0, 0, 0, 0),
23848 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23849 0, 0, 0, 0),
23850 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23851 0, 0, 0, 0),
23852 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23853 0, 0, 0, 0),
23854 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23855 0, 0, 0, 0),
23856 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23857 0, 0, 0, 0),
23858 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23859 0, 0, 0, 0),
23860 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23861 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023862 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23863 0, 0, 0, 0),
23864 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23865 0, 0, 0, 0),
23866 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23867 0, 0, 0, 0),
23868 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23869 0, 0, 0, 0),
23870 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23871 0, 0, 0, 0),
23872 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23873 0, 0, 0, 0),
23874 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23875 0, 0, 0, 0),
23876 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23877 0, 0, 0, 0),
23878 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23879 0, 0, 0, 0),
23880 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23881 0, 0, 0, 0),
23882 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23883 0, 0, 0, 0),
23884 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23885 0, 0, 0, 0),
23886 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23887 0, 0, 0, 0),
23888 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23889 0, 0, 0, 0),
23890 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23891 0, 0, 0, 0),
23892 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23893 0, 0, 0, 0),
Ralf Herz29e07132019-07-26 15:15:21 +020023894 SND_SOC_DAPM_AIF_OUT("PRI_META_MI2S_RX", "Primary META MI2S Playback",
23895 0, 0, 0, 0),
23896 SND_SOC_DAPM_AIF_OUT("SEC_META_MI2S_RX", "Secondary META MI2S Playback",
23897 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023898 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23899 0, 0, 0, 0),
23900 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23901 0, 0, 0, 0),
23902 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23903 0, 0, 0, 0),
23904 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23905 0, 0, 0, 0),
23906 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23907 0, 0, 0, 0),
23908 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23909 0, 0, 0, 0),
23910 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23911 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023912 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23913 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023914 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23915 0, 0, 0, 0),
23916 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23917 0, 0, 0, 0),
23918 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23919 0, 0, 0, 0),
23920 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23921 0, 0, 0, 0),
23922 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23923 0, 0, 0, 0),
23924 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23925 0, 0, 0, 0),
23926 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23927 0, 0, 0, 0),
23928 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23929 0, 0, 0, 0),
23930 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23931 0, 0, 0, 0),
23932 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23933 0, 0, 0, 0),
23934 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23935 0, 0, 0, 0),
23936 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23937 0, 0, 0, 0),
23938 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23939 0, 0, 0, 0),
23940 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23941 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023942 /* incall */
23943 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23944 0, 0, 0, 0),
23945 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23946 0, 0, 0, 0),
23947 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23948 0, 0, 0, 0),
23949 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23950 0, 0, 0, 0),
23951 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23952 0, 0, 0, 0),
23953 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23954 0, 0, 0, 0),
23955 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23956 0, 0, 0, 0),
23957 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23958 0, 0, 0, 0),
23959 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23960
23961 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23962 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23963 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23964 0, 0, 0, 0),
23965 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23966 0, 0, 0, 0),
23967 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23968 0, 0, 0, 0),
23969 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23970 0, 0, 0, 0),
23971 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23972 0, 0, 0, 0),
23973 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23974 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023975 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23976 0, 0, 0, 0),
23977 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23978 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023979 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23980 0, 0, 0, 0),
23981 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23982 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023983 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23984 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23985 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23986 0, 0, 0, 0),
23987 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23988 0, 0, 0, 0),
23989 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23990 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23991 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23992 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23993 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23994 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23995 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23996 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23997 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23998 /* In- call recording */
23999 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
24000 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053024001 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
24002 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024003 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
24004 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
24005
24006 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
24007 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053024008 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
24009 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024010 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
24011 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
24012
24013 /* Switch Definitions */
24014 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
24015 &slim_fm_switch_mixer_controls),
24016 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
24017 &slim1_fm_switch_mixer_controls),
24018 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
24019 &slim3_fm_switch_mixer_controls),
24020 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
24021 &slim4_fm_switch_mixer_controls),
24022 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
24023 &slim6_fm_switch_mixer_controls),
24024 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24025 &pcm_rx_switch_mixer_controls),
24026 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24027 &int0_mi2s_rx_switch_mixer_controls),
24028 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24029 &int4_mi2s_rx_switch_mixer_controls),
24030 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24031 &pri_mi2s_rx_switch_mixer_controls),
24032 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24033 &sec_mi2s_rx_switch_mixer_controls),
24034 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24035 &tert_mi2s_rx_switch_mixer_controls),
24036 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24037 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053024038 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24039 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080024040 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
24041 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024042 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24043 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024044 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
24045 &hfp_pri_aux_switch_mixer_controls),
24046 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
24047 &hfp_aux_switch_mixer_controls),
24048 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
24049 &hfp_int_switch_mixer_controls),
24050 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
24051 &hfp_slim7_switch_mixer_controls),
24052 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
24053 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080024054 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
24055 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053024056 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024057 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024058 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024059 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024060
24061 /* Mixer definitions */
24062 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24063 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
24064 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24065 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
24066 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24067 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
24068 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24069 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
24070 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24071 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
24072 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24073 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053024074 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24075 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024076 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
24077 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
24078 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
24079 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024080 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
24081 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020024082 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24083 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
24084 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24085 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024086 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24087 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
24088 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24089 quaternary_mi2s_rx_mixer_controls,
24090 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
24091 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24092 tertiary_mi2s_rx_mixer_controls,
24093 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
24094 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24095 secondary_mi2s_rx_mixer_controls,
24096 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
24097 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24098 secondary_mi2s_rx2_mixer_controls,
24099 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
24100 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24101 primary_mi2s_rx_mixer_controls,
24102 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
24103 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24104 int0_mi2s_rx_mixer_controls,
24105 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
24106 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24107 int4_mi2s_rx_mixer_controls,
24108 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
24109 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24110 quinary_mi2s_rx_mixer_controls,
24111 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024112 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24113 senary_mi2s_rx_mixer_controls,
24114 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024115 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24116 pri_tdm_rx_0_mixer_controls,
24117 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
24118 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24119 pri_tdm_rx_1_mixer_controls,
24120 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
24121 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24122 pri_tdm_rx_2_mixer_controls,
24123 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
24124 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24125 pri_tdm_rx_3_mixer_controls,
24126 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
24127 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24128 pri_tdm_tx_0_mixer_controls,
24129 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
24130 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24131 sec_tdm_rx_0_mixer_controls,
24132 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
24133 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24134 sec_tdm_rx_1_mixer_controls,
24135 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
24136 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24137 sec_tdm_rx_2_mixer_controls,
24138 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
24139 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24140 sec_tdm_rx_3_mixer_controls,
24141 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
24142 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24143 sec_tdm_tx_0_mixer_controls,
24144 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
24145 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24146 tert_tdm_rx_0_mixer_controls,
24147 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
24148 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24149 tert_tdm_tx_0_mixer_controls,
24150 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
24151 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24152 tert_tdm_rx_1_mixer_controls,
24153 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
24154 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24155 tert_tdm_rx_2_mixer_controls,
24156 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
24157 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24158 tert_tdm_rx_3_mixer_controls,
24159 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
24160 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
24161 tert_tdm_rx_4_mixer_controls,
24162 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
24163 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24164 quat_tdm_rx_0_mixer_controls,
24165 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
24166 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24167 quat_tdm_tx_0_mixer_controls,
24168 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
24169 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24170 quat_tdm_rx_1_mixer_controls,
24171 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
24172 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24173 quat_tdm_rx_2_mixer_controls,
24174 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
24175 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24176 quat_tdm_rx_3_mixer_controls,
24177 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024178 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24179 quin_tdm_rx_0_mixer_controls,
24180 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
24181 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24182 quin_tdm_tx_0_mixer_controls,
24183 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
24184 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24185 quin_tdm_rx_1_mixer_controls,
24186 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024187 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24188 quin_tdm_tx_1_mixer_controls,
24189 ARRAY_SIZE(quin_tdm_tx_1_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024190 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24191 quin_tdm_rx_2_mixer_controls,
24192 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024193 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24194 quin_tdm_tx_2_mixer_controls,
24195 ARRAY_SIZE(quin_tdm_tx_2_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024196 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24197 quin_tdm_rx_3_mixer_controls,
24198 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024199 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24200 quin_tdm_tx_3_mixer_controls,
24201 ARRAY_SIZE(quin_tdm_tx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024202 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24203 sen_tdm_tx_0_mixer_controls,
24204 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
24205 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24206 sen_tdm_rx_0_mixer_controls,
24207 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
24208 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24209 sen_tdm_rx_1_mixer_controls,
24210 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
24211 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24212 sen_tdm_rx_2_mixer_controls,
24213 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
24214 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24215 sen_tdm_rx_3_mixer_controls,
24216 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Ralf Herz29e07132019-07-26 15:15:21 +020024217 SND_SOC_DAPM_MIXER("PRI_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24218 pri_meta_mi2s_rx_mixer_controls,
24219 ARRAY_SIZE(pri_meta_mi2s_rx_mixer_controls)),
24220 SND_SOC_DAPM_MIXER("SEC_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24221 sec_meta_mi2s_rx_mixer_controls,
24222 ARRAY_SIZE(sec_meta_mi2s_rx_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024223 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24224 wsa_cdc_dma_rx_0_mixer_controls,
24225 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
24226 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24227 wsa_cdc_dma_rx_1_mixer_controls,
24228 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024229 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24230 rx_cdc_dma_rx_0_mixer_controls,
24231 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
24232 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24233 rx_cdc_dma_rx_1_mixer_controls,
24234 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
24235 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24236 rx_cdc_dma_rx_2_mixer_controls,
24237 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
24238 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24239 rx_cdc_dma_rx_3_mixer_controls,
24240 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
24241 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
24242 rx_cdc_dma_rx_4_mixer_controls,
24243 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
24244 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
24245 rx_cdc_dma_rx_5_mixer_controls,
24246 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
24247 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
24248 rx_cdc_dma_rx_6_mixer_controls,
24249 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
24250 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
24251 rx_cdc_dma_rx_7_mixer_controls,
24252 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024253 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
24254 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
24255 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
24256 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
24257 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
24258 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
24259 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
24260 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
24261 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
24262 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
24263 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
24264 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
24265 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
24266 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
24267 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
24268 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024269 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
24270 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024271 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
24272 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024273 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
24274 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
24275 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
24276 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
24277 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
24278 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
24279 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
24280 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070024281 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
24282 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070024283 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
24284 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053024285 SND_SOC_DAPM_MIXER("MultiMedia23 Mixer", SND_SOC_NOPM, 0, 0,
24286 mmul23_mixer_controls, ARRAY_SIZE(mmul23_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053024287 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
24288 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024289 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
24290 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
24291 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
24292 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024293 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
24294 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024295 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24296 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
24297 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24298 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
24299 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24300 tert_auxpcm_rx_mixer_controls,
24301 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
24302 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24303 quat_auxpcm_rx_mixer_controls,
24304 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024305 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24306 quin_auxpcm_rx_mixer_controls,
24307 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024308 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24309 sen_auxpcm_rx_mixer_controls,
24310 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024311 /* incall */
24312 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
24313 incall_music_delivery_mixer_controls,
24314 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
24315 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24316 incall_music2_delivery_mixer_controls,
24317 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
24318 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24319 slimbus_4_rx_mixer_controls,
24320 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
24321 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24322 slimbus_6_rx_mixer_controls,
24323 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
24324 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24325 usb_audio_rx_mixer_controls,
24326 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
24327 /* Voice Mixer */
24328 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
24329 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
24330 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
24331 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
24332 SND_SOC_NOPM, 0, 0,
24333 sec_i2s_rx_voice_mixer_controls,
24334 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
24335 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
24336 SND_SOC_NOPM, 0, 0,
24337 sec_mi2s_rx_voice_mixer_controls,
24338 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
24339 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
24340 SND_SOC_NOPM, 0, 0,
24341 slimbus_rx_voice_mixer_controls,
24342 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
24343 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
24344 SND_SOC_NOPM, 0, 0,
24345 bt_sco_rx_voice_mixer_controls,
24346 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
24347 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
24348 SND_SOC_NOPM, 0, 0,
24349 afe_pcm_rx_voice_mixer_controls,
24350 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
24351 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
24352 SND_SOC_NOPM, 0, 0,
24353 aux_pcm_rx_voice_mixer_controls,
24354 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
24355 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
24356 SND_SOC_NOPM, 0, 0,
24357 sec_aux_pcm_rx_voice_mixer_controls,
24358 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
24359 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
24360 SND_SOC_NOPM, 0, 0,
24361 tert_aux_pcm_rx_voice_mixer_controls,
24362 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
24363 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
24364 SND_SOC_NOPM, 0, 0,
24365 quat_aux_pcm_rx_voice_mixer_controls,
24366 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024367 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
24368 SND_SOC_NOPM, 0, 0,
24369 quin_aux_pcm_rx_voice_mixer_controls,
24370 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024371 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
24372 SND_SOC_NOPM, 0, 0,
24373 sen_aux_pcm_rx_voice_mixer_controls,
24374 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024375 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
24376 SND_SOC_NOPM, 0, 0,
24377 hdmi_rx_voice_mixer_controls,
24378 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
24379 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
24380 SND_SOC_NOPM, 0, 0,
24381 mi2s_rx_voice_mixer_controls,
24382 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
24383 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
24384 SND_SOC_NOPM, 0, 0,
24385 pri_mi2s_rx_voice_mixer_controls,
24386 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
24387 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
24388 SND_SOC_NOPM, 0, 0,
24389 int0_mi2s_rx_voice_mixer_controls,
24390 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
24391 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
24392 SND_SOC_NOPM, 0, 0,
24393 int4_mi2s_rx_voice_mixer_controls,
24394 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
24395 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
24396 SND_SOC_NOPM, 0, 0,
24397 tert_mi2s_rx_voice_mixer_controls,
24398 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
24399 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
24400 SND_SOC_NOPM, 0, 0,
24401 quat_mi2s_rx_voice_mixer_controls,
24402 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
24403 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
24404 SND_SOC_NOPM, 0, 0,
24405 quin_mi2s_rx_voice_mixer_controls,
24406 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024407 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
24408 SND_SOC_NOPM, 0, 0,
24409 pri_tdm_rx_0_voice_mixer_controls,
24410 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
24411 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
24412 SND_SOC_NOPM, 0, 0,
24413 pri_tdm_rx_1_voice_mixer_controls,
24414 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
24415 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
24416 SND_SOC_NOPM, 0, 0,
24417 pri_tdm_rx_2_voice_mixer_controls,
24418 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
24419 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
24420 SND_SOC_NOPM, 0, 0,
24421 pri_tdm_rx_3_voice_mixer_controls,
24422 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024423 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
24424 SND_SOC_NOPM, 0, 0,
24425 sen_mi2s_rx_voice_mixer_controls,
24426 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024427 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
24428 SND_SOC_NOPM, 0, 0,
24429 quat_tdm_rx_2_voice_mixer_controls,
24430 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024431 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2_Voice Mixer",
24432 SND_SOC_NOPM, 0, 0,
24433 quin_tdm_rx_2_voice_mixer_controls,
24434 ARRAY_SIZE(quin_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024435 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
24436 SND_SOC_NOPM, 0, 0,
24437 wsa_cdc_dma_rx_0_voice_mixer_controls,
24438 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
24439 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
24440 SND_SOC_NOPM, 0, 0,
24441 rx_cdc_dma_rx_0_voice_mixer_controls,
24442 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024443 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1_Voice Mixer",
24444 SND_SOC_NOPM, 0, 0,
24445 rx_cdc_dma_rx_1_voice_mixer_controls,
24446 ARRAY_SIZE(rx_cdc_dma_rx_1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024447 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
24448 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
24449 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024450 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
24451 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
24452 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
24453 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
24454 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
24455 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
24456 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24457 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
24458 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24459 int_bt_a2dp_rx_mixer_controls,
24460 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
24461 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24462 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
24463 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24464 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
24465 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24466 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
24467 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24468 tx_voice2_stub_mixer_controls,
24469 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
24470 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24471 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
24472 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
24473 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
24474 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
24475 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
24476 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24477 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
24478 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
24479 SND_SOC_NOPM, 0, 0,
24480 slimbus_6_rx_voice_mixer_controls,
24481 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
24482 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24483 slimbus_7_rx_voice_mixer_controls,
24484 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
24485 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24486 slimbus_8_rx_voice_mixer_controls,
24487 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
24488 /* port mixer */
24489 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
24490 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
24491 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
24492 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
24493 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
24494 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
24495 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
24496 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
24497 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
24498 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
24499 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
24500 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
24501 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
24502 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
24503 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024504 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
24505 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
24506 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024507 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
24508 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
24509 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024510 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24511 sbus_1_rx_port_mixer_controls,
24512 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
24513 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24514 bt_sco_rx_port_mixer_controls,
24515 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
24516 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
24517 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
24518 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
24519 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
24520 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
24521 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
24522 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
24523 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
24524 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070024525 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070024526 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
24527 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024528 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
24529 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
24530 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
24531 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
24532 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
24533 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
24534 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
24535 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
24536 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
24537 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24538 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
24539 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24540 primary_mi2s_rx_port_mixer_controls,
24541 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
24542 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24543 sec_mi2s_rx_port_mixer_controls,
24544 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
24545 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24546 tert_mi2s_rx_port_mixer_controls,
24547 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
24548 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24549 quat_mi2s_rx_port_mixer_controls,
24550 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024551 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24552 quin_mi2s_rx_port_mixer_controls,
24553 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024554 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24555 sen_mi2s_rx_port_mixer_controls,
24556 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024557 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24558 pri_tdm_rx_0_port_mixer_controls,
24559 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
24560 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24561 pri_tdm_rx_1_port_mixer_controls,
24562 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
24563 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24564 pri_tdm_rx_2_port_mixer_controls,
24565 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
24566 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24567 pri_tdm_rx_3_port_mixer_controls,
24568 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
24569 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24570 sec_tdm_rx_0_port_mixer_controls,
24571 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
24572 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24573 sec_tdm_rx_1_port_mixer_controls,
24574 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
24575 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24576 sec_tdm_rx_2_port_mixer_controls,
24577 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
24578 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24579 sec_tdm_rx_3_port_mixer_controls,
24580 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070024581 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24582 sec_tdm_rx_7_port_mixer_controls,
24583 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024584 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24585 tert_tdm_rx_0_port_mixer_controls,
24586 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
24587 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24588 tert_tdm_rx_1_port_mixer_controls,
24589 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
24590 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24591 tert_tdm_rx_2_port_mixer_controls,
24592 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
24593 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24594 tert_tdm_rx_3_port_mixer_controls,
24595 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
24596 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24597 quat_tdm_rx_0_port_mixer_controls,
24598 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
24599 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24600 quat_tdm_rx_1_port_mixer_controls,
24601 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
24602 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24603 quat_tdm_rx_2_port_mixer_controls,
24604 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
24605 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24606 quat_tdm_rx_3_port_mixer_controls,
24607 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050024608 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24609 quat_tdm_rx_7_port_mixer_controls,
24610 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024611 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24612 quin_tdm_rx_0_port_mixer_controls,
24613 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
24614 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24615 quin_tdm_rx_1_port_mixer_controls,
24616 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
24617 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24618 quin_tdm_rx_2_port_mixer_controls,
24619 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
24620 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24621 quin_tdm_rx_3_port_mixer_controls,
24622 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080024623 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24624 quin_tdm_rx_7_port_mixer_controls,
24625 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024626 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24627 sen_tdm_rx_0_port_mixer_controls,
24628 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
24629 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24630 sen_tdm_rx_1_port_mixer_controls,
24631 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
24632 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24633 sen_tdm_rx_2_port_mixer_controls,
24634 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
24635 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24636 sen_tdm_rx_3_port_mixer_controls,
24637 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024638 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24639 int0_mi2s_rx_port_mixer_controls,
24640 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
24641 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24642 int4_mi2s_rx_port_mixer_controls,
24643 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024644 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24645 wsa_cdc_dma_rx_0_port_mixer_controls,
24646 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
24647 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24648 rx_cdc_dma_rx_0_port_mixer_controls,
24649 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024650 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24651 rx_cdc_dma_rx_1_port_mixer_controls,
24652 ARRAY_SIZE(rx_cdc_dma_rx_1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024653 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
24654 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
24655 ARRAY_SIZE(tx_qchat_mixer_controls)),
24656 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
24657 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
24658 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
24659 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
24660 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
24661 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024662 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
24663 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
24664 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024665 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
24666 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
24667 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024668 /* lsm mixer definitions */
24669 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
24670 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
24671 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
24672 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
24673 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
24674 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
24675 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
24676 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
24677 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
24678 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
24679 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
24680 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
24681 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
24682 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
24683 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
24684 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
24685 /* Virtual Pins to force backends ON atm */
24686 SND_SOC_DAPM_OUTPUT("BE_OUT"),
24687 SND_SOC_DAPM_INPUT("BE_IN"),
24688
24689 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24690 &slim0_rx_vi_fb_lch_mux),
24691 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24692 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024693 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24694 &wsa_rx_0_vi_fb_lch_mux),
24695 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24696 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024697 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
24698 &mi2s_rx_vi_fb_mux),
24699 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
24700 &int4_mi2s_rx_vi_fb_mono_ch_mux),
24701 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
24702 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
24703
24704 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
24705 &voc_ext_ec_mux),
24706 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
24707 &ext_ec_ref_mux_ul1),
24708 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
24709 &ext_ec_ref_mux_ul2),
24710 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
24711 &ext_ec_ref_mux_ul3),
24712 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
24713 &ext_ec_ref_mux_ul4),
24714 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
24715 &ext_ec_ref_mux_ul5),
24716 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
24717 &ext_ec_ref_mux_ul6),
24718 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
24719 &ext_ec_ref_mux_ul8),
24720 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
24721 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024722 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
24723 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024724 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
24725 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024726 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
24727 &ext_ec_ref_mux_ul17),
24728 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
24729 &ext_ec_ref_mux_ul18),
24730 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
24731 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080024732 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
24733 &ext_ec_ref_mux_ul28),
24734 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
24735 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024736};
24737
24738static const struct snd_soc_dapm_route intercon[] = {
24739 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24740 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24741 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24742 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24743 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24744 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24745 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24746 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24747 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24748 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24749 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24750 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24751 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24752 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24753 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24754 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024755 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024756 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
24757
24758 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24759 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24760 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24761 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24762 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24763 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24764 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24765 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24766 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24767 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24768 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24769 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24770 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24771 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24772 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24773 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024774 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024775 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24776
24777 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24778 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24779 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24780 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24781 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24782 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24783 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24784 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24785 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24786 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24787 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24788 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24789 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24790 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24791 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24792 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024793 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024794 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24795
24796 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24797 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24798 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24799 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24800 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24801 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24802 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24803 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24804 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24805 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24806 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24807 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24808 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24809 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24810 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24811 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024812 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024813 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24814
24815 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24816 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24817 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24818 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24819 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24820 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24821 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24822 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24823 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24824 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24825 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24826 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24827 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24828 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24829 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24830 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024831 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024832 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24833
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024834 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24835 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24836 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24837 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24838 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24839 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24840 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24841 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24842 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24843 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24844 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24845 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24846 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24847 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24848 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24849 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024850 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024851 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24852
24853 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24854 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24855 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24856 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24857 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24858 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24859 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24860 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24861 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24862 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24863 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24864 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24865 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24866 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24867 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24868 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024869 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024870 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24871
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024872 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24873 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24874 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24875 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24876 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24877 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24878 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24879 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24880 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24881 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24882 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24883 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24884 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24885 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24886 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24887 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024888 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024889 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24890
24891 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24892 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24893 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24894 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24895 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24896 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24897 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24898 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24899 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24900 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24901 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24902 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24903 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24904 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24905 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24906 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024907 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024908 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24909
24910 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24911 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24912 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24913 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24914 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24915 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24916 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24917 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24918 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24919 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24920 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24921 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24922 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24923 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24924 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24925 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024926 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024927 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24928
24929 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24930 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24931 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24932 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24933 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24934 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24935 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24936 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24937 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24938 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24939 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24940 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24941 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24942 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24943 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24944 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024945 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024946 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24947
24948 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24949 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24950 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24951 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24952 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24953 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24954 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24955 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24956 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24957 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24958 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24959 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24960 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24961 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24962 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24963 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024964 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024965 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24966
24967 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24968 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24969 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24970 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24971 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24972 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24973 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24974 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24975 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24976 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24977 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24978 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24979 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24980 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24981 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24982 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024983 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024984 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24985
24986 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24987 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24988 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24989 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24990 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24991 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24992 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24993 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24994 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24995 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24996 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24997 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24998 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24999 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
25000 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
25001 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025002 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025003 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
25004
25005 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
25006 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
25007 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
25008 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
25009 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
25010 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
25011 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
25012 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
25013 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
25014 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
25015 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
25016 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
25017 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
25018 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
25019 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
25020 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025021 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025022 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
25023
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025024 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
25025 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
25026 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
25027 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
25028 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
25029 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
25030 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
25031 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
25032 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
25033 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
25034 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
25035 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
25036 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
25037 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
25038 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
25039 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025040 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025041 {"HDMI", NULL, "HDMI Mixer"},
25042
25043 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
25044 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
25045 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
25046 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
25047 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
25048 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
25049 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
25050 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
25051 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
25052 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
25053 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
25054 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
25055 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
25056 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
25057 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
25058 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025059 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025060 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
25061
Karthikeyan Mani57550082018-05-03 18:43:58 -070025062 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
25063 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
25064 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
25065 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
25066 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
25067 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
25068 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
25069 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
25070 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
25071 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
25072 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
25073 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
25074 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
25075 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
25076 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
25077 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025078 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070025079 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
25080
Ralf Herzc8701f72018-06-20 11:37:35 +020025081 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25082 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25083 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25084 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25085 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25086 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25087 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25088 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25089 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25090 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25091 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25092 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25093 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25094 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25095 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25096 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025097 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025098 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
25099
25100 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25101 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25102 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25103 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25104 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25105 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25106 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25107 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25108 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25109 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25110 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25111 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25112 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25113 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25114 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25115 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025116 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025117 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025118
25119 /* incall */
25120 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
25121 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
Anurag Chouhanb2a024a2019-10-09 11:39:08 +053025122 {"Incall_Music Audio Mixer", "MultiMedia4", "MM_DL4"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025123 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
25124 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
25125 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
25126 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25127 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25128 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25129 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25130 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
25131 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25132 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25133 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25134 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25135 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
25136
25137 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25138 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25139 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25140 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25141 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25142 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25143 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25144 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25145 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25146 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25147 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25148 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25149 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25150 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25151 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25152 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025153 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025154 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
25155
25156 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25157 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25158 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25159 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25160 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25161 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25162 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25163 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25164 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25165 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25166 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25167 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25168 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25169 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25170 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25171 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025172 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025173 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
25174
Surendar Karka3ef3d812018-09-28 18:52:35 +053025175 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25176 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25177 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25178 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25179 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25180 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25181 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25182 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25183 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25184 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25185 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25186 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25187 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25188 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25189 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25190 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25191 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25192 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
25193
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025194 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25195 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25196 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25197 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25198 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25199 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25200 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25201 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25202 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25203 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25204 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25205 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25206 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25207 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25208 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25209 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025210 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025211 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
25212
25213 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25214 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25215 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
Zhou Song8e7a8d42019-11-11 18:15:07 +080025216 {"MultiMedia9 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025217 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25218 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25219 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
Zhou Song8e7a8d42019-11-11 18:15:07 +080025220 {"MultiMedia9 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025221 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
25222 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25223 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25224 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025225 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025226 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25227 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025228 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025229 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025230 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025231 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025232 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025233 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025234 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025235 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025236 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025237 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025238 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025239 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025240 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025241 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25242 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025243 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025244 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025245 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25246 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25247 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25248 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25249 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025250 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25251 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025252 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025253 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025254 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025255 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25256 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25257 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025258 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025259 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25260 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25261 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25262 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25263 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025264 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025265 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025266 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025267 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25268 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25269 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025270 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025271 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25272 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025273 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025274 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025275 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025276 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025277 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025278 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025279 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025280 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25281 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025282 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025283 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025284 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025285 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025286 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25287 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25288 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025289 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025290 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025291 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25292 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25293 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025294 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025295
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025296 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25297 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25298 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25299 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25300 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25301 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25302 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25303 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25304 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25305 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25306 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25307 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25308 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25309 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25310 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25311 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025312 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025313 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
25314
25315 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25316 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25317 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25318 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25319 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25320 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25321 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25322 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25323 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25324 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25325 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25326 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25327 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25328 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25329 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025330 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025331 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
25332
25333 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25334 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25335 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25336 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25337 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25338 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25339 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25340 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25341 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25342 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25343 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25344 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25345 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25346 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025347 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025348 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
25349
25350 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25351 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25352 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25353 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25354 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25355 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25356 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25357 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25358 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25359 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25360 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25361 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25362 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25363 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025364 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025365 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
25366
25367 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25368 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
25369
25370 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25371 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25372
25373 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25374 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25375 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25376 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25377 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25378 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25379 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25380 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025381 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025382 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25383 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25384 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25385 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25386 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25387 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25388 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025389 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025390 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
Jhansi Konathala8cf03d42019-08-20 19:27:39 +053025391 {"PRI_MI2S_RX Audio Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025392
25393 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25394 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25395 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25396 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25397 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25398 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25399 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25400 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25401 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25402 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25403 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25404 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25405 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25406 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25407 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25408 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
25409
25410 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25411 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25412 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25413 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25414 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25415 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25416 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25417 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25418 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25419 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25420 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25421 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25422 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25423 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25424 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25425 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
25426
25427 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25428 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25429 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25430 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25431 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25432 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25433 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25434 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25435 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25436 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25437 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25438 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25439 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25440 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25441 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25442 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25443 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25444 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
25445
Karthikeyan Manic3700752019-03-11 18:33:53 -070025446 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25447 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25448 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25449 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25450 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25451 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25452 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25453 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25454 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25455 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25456 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25457 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25458 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25459 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25460 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25461 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
25462
Ralf Herz29e07132019-07-26 15:15:21 +020025463 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25464 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25465 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25466 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25467 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25468 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25469 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25470 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25471 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25472 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25473 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25474 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25475 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25476 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25477 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25478 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25479 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25480 {"PRI_META_MI2S_RX", NULL, "PRI_META_MI2S_RX Audio Mixer"},
25481
25482 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25483 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25484 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25485 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25486 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25487 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25488 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25489 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25490 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25491 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25492 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25493 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25494 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25495 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25496 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25497 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25498 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25499 {"SEC_META_MI2S_RX", NULL, "SEC_META_MI2S_RX Audio Mixer"},
25500
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025501 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25502 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25503 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25504 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25505 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25506 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25507 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25508 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25509 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25510 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25511 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25512 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25513 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25514 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25515 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25516 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025517 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025518 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025519 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025520 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
25521
25522 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25523 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25524 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25525 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25526 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25527 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25528 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25529 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25530 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25531 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25532 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25533 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25534 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25535 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25536 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25537 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025538 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025539 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025540 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025541 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
25542
25543 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25544 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25545 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25546 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25547 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25548 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25549 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25550 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25551 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25552 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25553 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25554 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25555 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25556 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25557 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25558 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025559 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025560 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025561 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025562 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
25563
25564 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25565 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25566 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25567 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25568 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25569 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25570 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25571 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25572 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25573 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25574 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25575 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25576 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25577 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25578 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25579 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025580 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025581 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025582 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025583 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
25584
25585 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25586 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25587 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25588 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25589 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25590 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25591 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25592 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25593 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25594 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25595 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25596 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25597 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25598 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25599 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25600 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025601 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025602 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
25603
25604 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25605 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25606 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25607 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25608 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25609 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25610 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25611 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25612 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25613 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25614 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25615 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25616 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25617 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25618 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25619 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025620 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025621 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025622 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025623 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
25624
25625 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25626 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25627 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25628 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25629 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25630 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25631 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25632 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25633 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25634 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25635 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25636 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25637 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25638 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25639 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25640 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025641 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025642 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025643 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025644 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
25645
25646 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25647 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25648 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25649 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25650 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25651 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25652 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25653 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25654 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25655 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25656 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25657 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25658 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25659 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25660 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25661 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025662 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025663 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025664 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025665 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
25666
25667 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25668 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25669 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25670 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25671 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25672 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25673 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25674 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25675 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25676 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25677 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25678 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25679 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25680 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25681 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25682 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025683 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025684 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025685 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025686 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
25687
25688 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25689 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25690 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25691 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25692 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25693 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25694 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25695 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25696 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25697 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25698 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25699 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25700 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25701 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25702 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25703 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025704 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025705 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
25706
25707 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25708 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25709 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25710 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25711 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25712 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25713 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25714 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25715 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25716 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25717 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25718 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25719 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25720 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25721 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25722 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025723 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025724 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025725 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025726 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
25727
25728 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25729 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25730 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25731 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25732 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25733 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25734 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25735 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25736 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25737 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25738 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25739 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25740 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25741 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25742 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25743 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025744 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025745 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
25746
25747 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25748 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25749 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25750 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25751 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25752 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25753 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25754 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25755 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25756 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25757 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25758 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25759 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25760 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25761 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25762 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025763 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025764 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025765 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025766 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
25767
25768 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25769 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25770 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25771 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25772 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25773 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25774 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25775 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25776 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25777 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25778 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25779 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25780 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25781 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25782 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25783 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025784 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025785 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025786 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025787 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
25788
25789 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25790 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25791 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25792 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25793 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25794 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25795 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25796 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25797 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25798 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25799 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25800 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25801 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25802 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25803 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25804 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025805 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025806 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025807 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025808 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
25809
25810 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
25811 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
25812 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
25813 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
25814 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
25815 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
25816 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
25817 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
25818 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
25819 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25820 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25821 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25822 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25823 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25824 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25825 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025826 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025827 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025828 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025829 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25830
25831 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25832 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25833 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25834 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25835 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25836 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25837 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25838 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25839 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25840 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25841 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25842 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25843 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25844 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25845 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25846 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25847 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025848 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025849 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025850 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025851 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25852
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025853 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25854 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25855 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25856 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25857 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25858 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25859 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25860 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25861 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25862 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25863 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25864 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25865 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25866 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25867 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25868 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025869 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025870 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25871
25872 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25873 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25874 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25875 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25876 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25877 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25878 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25879 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25880 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25881 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25882 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25883 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25884 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25885 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25886 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25887 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25888 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025889 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025890 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025891 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025892 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25893
25894 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25895 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25896 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25897 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25898 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25899 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25900 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25901 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25902 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25903 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25904 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25905 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25906 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25907 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25908 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25909 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25910 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025911 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025912 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025913 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025914 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25915
25916 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25917 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25918 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25919 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25920 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25921 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25922 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25923 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25924 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25925 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25926 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25927 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25928 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25929 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25930 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25931 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25932 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025933 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025934 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025935 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025936 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25937
Rohit Kumara5077932017-09-10 22:05:05 +053025938 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25939 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25940 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25941 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25942 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25943 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25944 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25945 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25946 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25947 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25948 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25949 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25950 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25951 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25952 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25953 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25954 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025955 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025956 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025957 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053025958 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25959
25960 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25961 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25962 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25963 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25964 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25965 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25966 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25967 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25968 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25969 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25970 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25971 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25972 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25973 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25974 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25975 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025976 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053025977 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25978
25979 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25980 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25981 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25982 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25983 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25984 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25985 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25986 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25987 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25988 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25989 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25990 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25991 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25992 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25993 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25994 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25995 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025996 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025997 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025998 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053025999 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
26000
26001 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
26002 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
26003 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
26004 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
26005 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
26006 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
26007 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
26008 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
26009 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
26010 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
26011 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
26012 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
26013 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
26014 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
26015 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
26016 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
26017 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026018 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070026019 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026020 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053026021 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
26022
26023 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
26024 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
26025 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
26026 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
26027 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
26028 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
26029 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
26030 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
26031 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
26032 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
26033 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
26034 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
26035 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
26036 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
26037 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
26038 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
26039 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026040 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070026041 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026042 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053026043 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
26044
Karthikeyan Manic3700752019-03-11 18:33:53 -070026045 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
26046 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
26047 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
26048 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
26049 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
26050 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
26051 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
26052 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
26053 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
26054 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
26055 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
26056 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
26057 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
26058 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
26059 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
26060 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
26061 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
26062 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
26063 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
26064
26065 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
26066 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
26067 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
26068 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
26069 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
26070 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
26071 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
26072 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
26073 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
26074 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
26075 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
26076 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
26077 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
26078 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
26079 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
26080 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
26081 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
26082
26083 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
26084 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
26085 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
26086 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
26087 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
26088 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
26089 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
26090 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
26091 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
26092 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
26093 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
26094 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
26095 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
26096 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
26097 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
26098 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
26099 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
26100 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
26101 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
26102
26103 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
26104 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
26105 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
26106 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
26107 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
26108 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
26109 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
26110 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
26111 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
26112 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
26113 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
26114 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
26115 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
26116 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
26117 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
26118 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
26119 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
26120 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
26121 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
26122
26123 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
26124 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
26125 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
26126 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
26127 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
26128 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
26129 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
26130 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
26131 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
26132 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
26133 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
26134 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
26135 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
26136 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
26137 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
26138 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
26139 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
26140 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
26141 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
26142
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026143 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
26144 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
26145 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
26146 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
26147 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026148 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026149 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026150 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26151 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26152 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26153 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
26154 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026155 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
26156 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026157 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26158 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26159 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26160 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26161 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26162 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26163 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026164 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026165 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26166 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
26167 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026168 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026169 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053026170 {"MultiMedia2 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026171 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
26172 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026173 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026174 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
26175 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026176 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26177 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
26178 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026179 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026180 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
26181 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
26182 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026183 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026184 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026185 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
26186 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
26187 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026188 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
26189 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
26190 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026191 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26192 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26193 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26194 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26195 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26196 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26197 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26198 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026199 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026200 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26201 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26202 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026203 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026204 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26205 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26206 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026207 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026208 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026209 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26210 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26211 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026212 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026213 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026214 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26215 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26216 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26217 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26218 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026219 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026220 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26221 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26222 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26223 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026224 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026225 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026226
26227 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26228 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26229 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26230 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26231 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26232 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26233 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26234 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26235 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26236 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26237 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26238 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26239 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26240 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26241 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26242 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026243 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026244 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26245 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26246 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26247 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026248 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26249 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26250 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26251 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026252 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26253 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26254 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26255 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26256 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026257 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026258 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26259 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26260 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26261 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26262 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26263 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026264 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26265 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026266
26267 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26268 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26269 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26270 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26271 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26272 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26273 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26274 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26275 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26276 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26277 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26278 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26279 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26280 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26281 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26282 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026283 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026284 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26285 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26286 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26287 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026288 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26289 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26290 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26291 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026292 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26293 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26294 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26295 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26296 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026297 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026298 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26299 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26300 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26301 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26302 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26303 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026304 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26305 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026306
26307 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26308 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26309 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26310 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26311 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26312 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26313 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26314 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26315 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26316 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26317 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26318 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26319 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26320 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26321 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26322 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026323 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026324 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26325 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26326 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26327 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026328 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26329 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26330 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26331 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026332 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26333 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26334 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26335 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26336 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026337 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026338 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26339 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26340 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26341 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26342 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26343 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026344 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26345 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026346
26347 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26348 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26349 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26350 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26351 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26352 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26353 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26354 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26355 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26356 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26357 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26358 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26359 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26360 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26361 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26362 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026363 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026364 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26365 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26366 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26367 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026368 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26369 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26370 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26371 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026372 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26373 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26374 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26375 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26376 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026377 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026378 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26379 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26380 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26381 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26382 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26383 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026384 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26385 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026386
26387 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26388 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26389 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26390 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26391 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26392 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26393 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26394 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26395 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26396 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26397 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26398 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26399 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26400 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26401 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26402 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026403 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026404 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26405 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26406 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26407 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026408 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26409 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26410 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26411 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026412 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26413 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26414 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26415 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26416 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026417 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026418 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26419 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26420 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26421 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26422 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26423 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026424 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26425 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026426
26427 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26428 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26429 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26430 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26431 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26432 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26433 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26434 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26435 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26436 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26437 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26438 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26439 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26440 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26441 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26442 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026443 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026444 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26445 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26446 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26447 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026448 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26449 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26450 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26451 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026452 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26453 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26454 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26455 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26456 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026457 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026458 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26459 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26460 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26461 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26462 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26463 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026464 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26465 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026466
26467 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26468 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26469 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26470 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26471 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26472 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26473 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26474 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26475 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26476 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26477 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26478 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26479 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26480 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26481 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26482 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026483 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026484 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26485 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26486 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26487 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026488 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26489 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26490 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26491 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026492 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26493 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26494 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26495 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26496 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026497 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026498 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26499 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26500 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26501 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26502 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26503 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026504 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26505 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026506
Samyak Jain810e42a2019-01-07 17:53:34 +053026507 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026508 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26509 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26510 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26511 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26512 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26513 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26514 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26515 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026516 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26517 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26518 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26519 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026520 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26521 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26522 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26523 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026524 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26525 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26526 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26527 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26528 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026529 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026530 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26531 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26532 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26533 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26534 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26535 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026536 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26537 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026538 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026539
Laxminath Kasam38070be2017-08-17 18:21:59 +053026540 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26541 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26542 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26543 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26544 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26545 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26546 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26547 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026548 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26549 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26550 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26551 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26552 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26553 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026554 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026555
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026556 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26557 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26558 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26559 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026560 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026561 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026562 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26563 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26564 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26565 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26566 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26567 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26568 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26569 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26570 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26571 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26572 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26573 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26574 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26575 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26576 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26577 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026578 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26579 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26580 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26581 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026582 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26583 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26584 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26585 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026586 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26587 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26588 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26589 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26590 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026591 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026592 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26593 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26594 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26595 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26596 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26597 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026598 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26599 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026600 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026601
Derek Chen07c6d1c2018-07-05 10:39:25 -070026602 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26603 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26604 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26605 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26606 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26607 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26608 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26609 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26610 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26611 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26612 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26613 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26614 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26615 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26616 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26617 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26618 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26619 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26620 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26621 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26622 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26623 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026624 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26625 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26626 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26627 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026628 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26629 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26630 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26631 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26632 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026633 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026634 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26635 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26636 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26637 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26638 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26639 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26640 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26641 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026642 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026643
Derek Chenb097d922019-07-31 17:28:02 -070026644 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26645 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26646 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26647 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26648 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26649 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26650 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26651 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26652 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26653 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26654 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26655 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26656 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26657 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26658 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26659 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26660 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26661 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26662 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26663 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26664
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026665 {"MultiMedia23 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26666 {"MultiMedia23 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26667 {"MultiMedia23 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26668 {"MultiMedia23 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26669 {"MultiMedia23 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26670 {"MultiMedia23 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26671 {"MultiMedia23 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26672 {"MultiMedia23 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26673 {"MultiMedia23 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26674 {"MultiMedia23 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26675 {"MultiMedia23 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26676 {"MultiMedia23 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26677 {"MultiMedia23 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26678 {"MultiMedia23 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26679 {"MultiMedia23 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26680 {"MultiMedia23 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26681 {"MultiMedia23 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26682 {"MultiMedia23 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26683 {"MultiMedia23 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26684 {"MultiMedia23 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26685
Surendar Karkac1cde372018-08-14 18:56:24 +053026686 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026687 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026688 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26689 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026690 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026691 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26692 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26693 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26694 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26695 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026696 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026697 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26698 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026699 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026700
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026701 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26702 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26703 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26704 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26705 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26706 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026707 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026708
Asish Bhattacharya34504582017-08-08 12:55:01 +053026709 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26710 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26711 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26712 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26713 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26714 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26715 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26716 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26717 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26718 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26719 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26720 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26721 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26722 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26723 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26724 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26725 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026726 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26727 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26728 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26729 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26730 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026731 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026732 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26733 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26734 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26735 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26736 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26737 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026738 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26739 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026740 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026741
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026742 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26743 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26744 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26745 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26746 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26747 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026748 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026749
26750 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26751 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26752 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26753 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26754 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26755 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026756 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026757 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26758 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026759
26760 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26761 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26762 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26763 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26764 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26765 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026766 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026767 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26768 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026769
26770 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26771 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26772 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26773 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26774 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26775 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026776 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026777 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26778 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026779
26780 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26781 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26782 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26783 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26784 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26785 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026786 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026787 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26788 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026789
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026790 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26791 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26792 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26793 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26794 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26795 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26796 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
26797 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26798 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
26799
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026800 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26801 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26802 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26803 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26804 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26805 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26806 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26807 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26808 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26809 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26810 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26811 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26812 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26813 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26814 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26815 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26816 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26817 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
26818
26819 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26820 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26821 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26822 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26823 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26824 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26825 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26826 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26827 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26828 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26829 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26830 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26831 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26832 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26833 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26834 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26835 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26836 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
26837
26838 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26839 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26840 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26841 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26842 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26843 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26844 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26845 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26846 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26847 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26848 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26849 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26850 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26851 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26852 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26853 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26854 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26855
26856 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26857 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26858 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26859 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26860 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26861 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26862 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26863 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26864 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26865 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26866 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26867 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26868 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26869 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26870 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26871 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26872 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26873
26874 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26875 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26876 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026877 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026878 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26879 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26880 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026881 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26882 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026883 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026884 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26885 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026886 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026887 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26888 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026889 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026890 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26891 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26892 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026893 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26894 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026895 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026896 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26897 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26898 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26899
26900 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26901 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26902 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026903 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026904 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26905 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26906 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026907 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26908 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026909 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026910 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26911 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026912 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026913 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26914 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26915 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26916 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26917 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26918 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26919 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26920 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26921 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026922 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026923 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026924 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26925 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26926 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26927 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026928 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026929 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026930 {"MM_UL23", NULL, "MultiMedia23 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026931 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026932 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26933 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026934 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026935
26936 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26937 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26938 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26939 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26940 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26941 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26942 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26943 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26944 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26945 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26946 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26947 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26948 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26949 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26950 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26951 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026952 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026953 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26954
26955 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26956 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26957 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26958 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26959 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26960 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26961 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26962 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26963 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26964 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26965 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26966 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26967 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26968 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26969 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26970 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026971 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026972 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26973
26974 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26975 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26976 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26977 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26978 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26979 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26980 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26981 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26982 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26983 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26984 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26985 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26986 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26987 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26988 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26989 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26990 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26991
26992 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26993 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26994 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26995 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26996 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26997 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26998 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26999 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
27000 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
27001 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
27002 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
27003 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
27004 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
27005 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27006 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27007 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27008 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
27009
Rohit Kumara5077932017-09-10 22:05:05 +053027010 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
27011 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
27012 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
27013 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
27014 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
27015 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
27016 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
27017 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
27018 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
27019 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
27020 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
27021 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
27022 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
27023 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27024 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27025 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27026 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
27027
Karthikeyan Manic3700752019-03-11 18:33:53 -070027028 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
27029 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
27030 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
27031 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
27032 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
27033 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
27034 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
27035 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
27036 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
27037 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
27038 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
27039 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
27040 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
27041 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27042 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27043 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27044 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
27045
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027046 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
27047 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27048 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27049 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27050 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27051 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
27052
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027053 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
27054 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27055 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27056 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
27057
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027058 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027059 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27060 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027061 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27062 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27063 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27064 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27065 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
27066
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027067 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
27068 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027069 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27070 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27071 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27072 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
27073
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027074 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
27075 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027076 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27077 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27078 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27079 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
27080
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027081 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
27082 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027083 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27084 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27085 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27086 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
27087
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080027088 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
27089 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080027090 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27091 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27092 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27093 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
27094
Karthikeyan Mani57550082018-05-03 18:43:58 -070027095 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
27096 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27097 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
27098 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27099 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27100 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
27101
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027102 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
27103 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27104 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27105 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27106 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027107 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
27108
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027109 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27110 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27111 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27112 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27113 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27114 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
27115
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027116 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27117 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027118 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27119 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27120 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27121 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
27122
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027123 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27124 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027125 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27126 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27127 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27128 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
27129
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027130 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27131 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027132 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27133 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27134 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27135 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
27136
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027137 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27138 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027139 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27140 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27141 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27142 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
27143
Rohit Kumara5077932017-09-10 22:05:05 +053027144 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27145 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027146 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27147 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27148 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27149 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
27150
Karthikeyan Manic3700752019-03-11 18:33:53 -070027151 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27152 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27153 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27154 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27155 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27156 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
27157
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027158 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
27159 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27160 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27161 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27162 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27163 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
27164 {"HDMI", NULL, "HDMI_DL_HL"},
27165
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027166 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027167 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27168 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027169 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27170 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27171 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080027172 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027173 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
27174
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027175 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027176 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27177 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027178 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27179 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27180 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27181 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27182 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
27183
27184 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27185 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27186 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27187 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27188 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27189 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
27190
27191 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27192 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27193 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27194 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27195 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27196 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
27197
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027198 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027199 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27200 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027201 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27202 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27203 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27204 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27205 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
27206
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027207 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027208 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27209 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027210 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27211 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27212 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27213 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
27214
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027215 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027216 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27217 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027218 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27219 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27220 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27221 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
27222
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027223 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027224 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27225 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27226 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27227 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
27228 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27229 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27230 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27231 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
27232
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027233 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027234 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27235 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27236 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27237 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
27238 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27239 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27240 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27241 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
27242
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027243 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027244 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27245 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27246 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27247 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
27248 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27249 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27250 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27251 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
27252
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027253 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027254 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27255 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27256 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27257 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
27258 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27259 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27260 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27261 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
27262
Karthikeyan Manic3700752019-03-11 18:33:53 -070027263 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27264 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27265 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27266 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27267 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
27268
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027269 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27270 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
27271
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053027272 {"QUIN_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27273 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_Voice Mixer"},
27274
Kunlei Zhang478379f2019-08-01 17:05:33 +080027275 {"WSA_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027276 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27277 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27278 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
27279
Kunlei Zhang478379f2019-08-01 17:05:33 +080027280 {"RX_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027281 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27282 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27283 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
27284
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053027285 {"RX_CDC_DMA_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
27286 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27287 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27288 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1_Voice Mixer"},
27289
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027290 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27291 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27292 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27293 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027294 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027295 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mani925413e2019-09-10 16:57:28 -070027296 {"VOC_EXT_EC MUX", "PRI_TDM_TX", "PRI_TDM_TX_0"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070027297 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027298 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027299 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
27300 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
27301
27302 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27303 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27304 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27305 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27306 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27307 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27308 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27309 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27310 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27311 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027312 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27313 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027314
27315 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27316 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27317 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27318 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27319
27320 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27321 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27322 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27323 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27324
27325 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27326 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27327 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27328 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27329
27330 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27331 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27332 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27333 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27334
27335 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27336 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27337 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27338 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27339
27340 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27341 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27342 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27343 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27344
27345 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27346 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27347 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27348 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27349
Laxminath Kasam38070be2017-08-17 18:21:59 +053027350 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27351 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27352 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27353 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27354 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27355 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27356 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27357 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27358 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27359 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027360 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27361 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070027362
27363 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27364 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27365 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27366 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27367
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027368 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27369 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27370 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27371 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27372
27373 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27374 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27375 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27376 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27377
27378 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27379 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27380 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27381 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27382
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027383 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27384 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27385 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27386 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27387
27388 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27389 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27390 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27391 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080027392
27393 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27394 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27395 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27396 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27397 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27398 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27399 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27400 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27401
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027402 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
27403 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
27404 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
27405 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
27406 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
27407 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
27408 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
27409 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053027410 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053027411 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027412 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
27413 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
27414 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027415 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
27416 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053027417 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027418
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027419 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
27420 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
27421 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027422 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027423 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
27424 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
27425 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
27426 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
27427 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
27428 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
27429 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
27430 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
27431 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
27432 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
27433 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
27434 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027435 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027436 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027437 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027438 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
27439 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
27440 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
27441 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
27442 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
27443 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027444 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
27445 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027446 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027447 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
27448
27449 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
27450 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027451 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027452 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
27453 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
27454 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
27455 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
27456 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
27457 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
27458 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
27459 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
27460 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
27461 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
27462 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
27463 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
27464 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027465 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027466 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027467 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
27468 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
27469 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
27470 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
27471 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
27472 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027473 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
27474 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070027475 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027476 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
27477
27478 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
27479 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027480 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027481 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
27482 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
27483 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
27484 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
27485 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
27486 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
27487 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
27488 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
27489 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
27490 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
27491 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
27492 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027493 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027494 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027495 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027496 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Kunlei Zhang478379f2019-08-01 17:05:33 +080027497 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_0_Voip", "TX_CDC_DMA_TX_0"},
27498 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_1_Voip", "TX_CDC_DMA_TX_1"},
27499 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_2_Voip", "TX_CDC_DMA_TX_2"},
27500 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_3_Voip", "TX_CDC_DMA_TX_3"},
27501 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_4_Voip", "TX_CDC_DMA_TX_4"},
27502 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_5_Voip", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027503 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
27504
27505 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
27506 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
27507 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
27508 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
27509 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
27510 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
27511 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
27512 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
27513 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
27514 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080027515 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
27516 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027517 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
27518 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
27519 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
27520 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
27521 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053027522 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27523 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
27524 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027525 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27526 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Laxminath Kasame0eca372019-10-03 19:34:45 +053027527 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027528 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027529 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27530 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27531 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27532 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27533 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27534 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27535 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27536 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027537 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27538 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027539 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027540 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027541 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027542 {"LSM1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027543 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
27544
27545 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27546 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27547 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27548 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27549 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27550 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27551 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27552 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027553 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27554 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027555 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027556 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027557 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027558 {"LSM2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027559 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
27560
27561
27562 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27563 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27564 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27565 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27566 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27567 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27568 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27569 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027570 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27571 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027572 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027573 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027574 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027575 {"LSM3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027576 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
27577
27578
27579 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27580 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27581 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27582 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27583 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27584 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27585 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27586 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027587 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27588 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027589 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027590 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027591 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027592 {"LSM4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027593 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
27594
27595 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27596 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27597 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27598 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27599 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27600 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27601 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27602 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027603 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27604 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027605 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027606 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027607 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027608 {"LSM5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027609 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
27610
27611 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27612 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27613 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27614 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27615 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27616 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027617 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27618 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027619 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027620 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027621 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027622 {"LSM6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027623 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
27624
27625 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27626 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27627 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27628 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27629 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27630 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027631 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27632 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027633 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027634 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027635 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027636 {"LSM7 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027637 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
27638
27639 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27640 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27641 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27642 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27643 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27644 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027645 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27646 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027647 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027648 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027649 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027650 {"LSM8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027651 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
27652
27653
27654 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
27655 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
27656 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
27657 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
27658 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
27659 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
27660 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
27661 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
27662 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
27663 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
27664 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027665 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027666 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027667 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
27668 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
27669 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
27670 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
27671 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
27672 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
27673
27674 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
27675 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
27676 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
27677 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
27678 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
27679 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
27680 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
27681 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
27682 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
27683 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
27684 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
27685 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080027686 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
27687 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027688 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027689 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027690 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027691 {"MI2S_RX", NULL, "MI2S_DL_HL"},
27692 {"MI2S_UL_HL", NULL, "MI2S_TX"},
27693 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
27694 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
27695
27696 /* connect to INT4_MI2S_DL_HL since same pcm_id */
27697 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27698 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
27699 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27700 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
27701 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
27702 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
27703 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
27704 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
27705 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
27706 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
27707
27708 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
27709 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027710 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
27711 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027712 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
27713 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027714 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27715 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
27716 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27717 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
27718 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
27719 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
27720 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
27721 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
27722 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
27723 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
27724
27725 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
27726 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
27727 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
27728 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
27729 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
27730 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
27731 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
27732 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
27733 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
27734 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
27735 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
27736 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
27737 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
27738 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
27739 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
27740 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027741 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027742 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
27743 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
27744 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
27745 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027746 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027747 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
27748 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
27749 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
27750 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
27751 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
27752 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
27753 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
27754 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027755 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027756 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
27757 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
27758 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
27759 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027760 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027761 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
27762 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
27763 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
27764 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027765 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027766 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
27767 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
27768 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
27769 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080027770 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027771 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
27772 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
27773 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
27774 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
27775 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
27776 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
27777 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
27778 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027779
27780 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27781 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27782 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27783 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27784 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27785 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27786 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27787 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27788 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27789 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27790 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27791 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27792 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27793 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27794 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27795 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027796 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27797 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27798 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27799 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027800 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27801 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27802 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27803 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027804 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
27805
27806 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27807 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27808 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27809 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27810 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27811 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27812 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27813 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27814 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27815 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27816 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27817 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27818 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27819 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27820 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27821 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027822 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27823 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27824 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27825 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027826 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27827 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27828 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27829 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027830 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
27831
27832 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27833 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27834 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27835 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27836 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27837 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27838 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27839 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27840 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27841 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27842 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27843 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27844 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27845 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27846 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27847 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027848 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27849 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27850 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27851 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027852 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27853 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27854 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27855 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027856 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
27857
27858 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27859 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27860 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27861 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27862 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27863 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27864 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27865 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27866 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27867 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27868 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27869 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27870 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27871 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27872 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27873 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027874 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27875 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27876 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27877 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027878 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27879 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27880 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27881 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027882 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27883
27884 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27885 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27886 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27887 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27888 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27889 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27890 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27891 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27892 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27893 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27894 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27895 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27896 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27897 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27898 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27899 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027900 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27901 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27902 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27903 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027904 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27905 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27906 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27907 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027908 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27909
27910 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27911 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27912 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27913 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27914 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27915 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27916 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27917 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27918 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27919 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27920 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27921 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27922 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27923 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27924 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27925 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027926 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27927 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27928 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27929 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027930 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27931 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27932 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27933 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027934 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27935
27936 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27937 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27938 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27939 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27940 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27941 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27942 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27943 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27944 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27945 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27946 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27947 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27948 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27949 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27950 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27951 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027952 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27953 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27954 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27955 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027956 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27957 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27958 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27959 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027960 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27961
27962 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27963 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27964 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27965 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27966 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27967 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27968 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27969 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27970 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27971 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27972 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27973 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27974 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27975 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27976 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27977 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027978 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27979 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27980 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27981 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027982 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27983 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27984 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27985 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027986 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27987
Derek Chenfdcc0982018-10-02 15:14:03 -070027988 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27989 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27990
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027991 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27992 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27993 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27994 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27995 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27996 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27997 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27998 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27999 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28000 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28001 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28002 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28003 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28004 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28005 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28006 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028007 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28008 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28009 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28010 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028011 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28012 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28013 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28014 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028015 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
28016
28017 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28018 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28019 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28020 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28021 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28022 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28023 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28024 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28025 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28026 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28027 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28028 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28029 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28030 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28031 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28032 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028033 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28034 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28035 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28036 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028037 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28038 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28039 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28040 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028041 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
28042
28043 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28044 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28045 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28046 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28047 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28048 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28049 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28050 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28051 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28052 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28053 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28054 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28055 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28056 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28057 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28058 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028059 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28060 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28061 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28062 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028063 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28064 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28065 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28066 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028067 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
28068
28069 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28070 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28071 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28072 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28073 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28074 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28075 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28076 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28077 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28078 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28079 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28080 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28081 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28082 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28083 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28084 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028085 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28086 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28087 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28088 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028089 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28090 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28091 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28092 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028093 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
28094
28095 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28096 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28097 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28098 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28099 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28100 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28101 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28102 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28103 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28104 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28105 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28106 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28107 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28108 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28109 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28110 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028111 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28112 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28113 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28114 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028115 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28116 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28117 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28118 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028119 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
28120
28121 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28122 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28123 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28124 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28125 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28126 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28127 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28128 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28129 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28130 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28131 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28132 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28133 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28134 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28135 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28136 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028137 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28138 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28139 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28140 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028141 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28142 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28143 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28144 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028145 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
28146
28147 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28148 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28149 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28150 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28151 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28152 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28153 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28154 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28155 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28156 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28157 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28158 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28159 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28160 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28161 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28162 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028163 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28164 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28165 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28166 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028167 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28168 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28169 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28170 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028171 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
28172
28173 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28174 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28175 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28176 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28177 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28178 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28179 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28180 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28181 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28182 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28183 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28184 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28185 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28186 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28187 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28188 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028189 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28190 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28191 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28192 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028193 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28194 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28195 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28196 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028197 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
28198
Derek Chenb9048cb2019-03-07 14:54:13 -050028199 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070028200 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028201 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
28202
Rohit Kumara5077932017-09-10 22:05:05 +053028203 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28204 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28205 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28206 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28207 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28208 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28209 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28210 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28211 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28212 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28213 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28214 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28215 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28216 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28217 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28218 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28219 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28220 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28221 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28222 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028223 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28224 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28225 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28226 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028227 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028228
28229 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28230 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28231 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28232 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28233 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28234 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28235 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28236 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28237 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28238 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28239 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28240 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28241 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28242 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28243 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28244 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28245 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28246 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28247 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28248 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028249 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28250 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28251 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28252 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028253 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028254
28255 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28256 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28257 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28258 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28259 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28260 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28261 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28262 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28263 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28264 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28265 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28266 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28267 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28268 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28269 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28270 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28271 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28272 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28273 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28274 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028275 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28276 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28277 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28278 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028279 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028280
28281 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28282 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28283 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28284 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28285 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28286 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28287 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28288 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28289 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28290 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28291 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28292 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28293 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28294 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28295 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28296 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28297 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28298 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28299 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28300 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028301 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28302 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28303 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28304 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028305 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070028306
28307 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
28308 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080028309 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
28310 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028311
Karthikeyan Manic3700752019-03-11 18:33:53 -070028312 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28313 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28314 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28315 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28316 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28317 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28318 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28319 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28320 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28321 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28322 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28323 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28324 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28325 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28326 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28327 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28328 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28329 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28330 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28331 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28332 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
28333
28334 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28335 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28336 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28337 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28338 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28339 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28340 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28341 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28342 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28343 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28344 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28345 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28346 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28347 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28348 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28349 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28350 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28351 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28352 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28353 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28354 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
28355
28356 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28357 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28358 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28359 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28360 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28361 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28362 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28363 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28364 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28365 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28366 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28367 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28368 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28369 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28370 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28371 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28372 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28373 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28374 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28375 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28376 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
28377
28378 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28379 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28380 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28381 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28382 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28383 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28384 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28385 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28386 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28387 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28388 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28389 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28390 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28391 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28392 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28393 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28394 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28395 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28396 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28397 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28398 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
28399
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028400 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28401 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28402 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28403 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028404 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028405 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028406 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28407 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28408 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28409 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028410 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028411 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28412 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
28413
28414 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28415 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28416 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28417 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028418 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028419 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028420 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28421 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28422 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028423 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028424 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28425 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28426 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
28427
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028428 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28429 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080028430 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028431 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028432 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
28433
28434 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28435 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028436 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028437 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028438
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053028439 {"RX_CDC_DMA_RX_1 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28440 {"RX_CDC_DMA_RX_1 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28441 {"RX_CDC_DMA_RX_1 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28442 {"RX_CDC_DMA_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28443 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Port Mixer"},
28444
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028445 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28446 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28447 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28448 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28449 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028450 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028451 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28452 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28453 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28454 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028455 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028456 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028457 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28458 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28459 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28460 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28461 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028462 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028463 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028464 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28465 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
28466 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28467 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28468 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
28469 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
28470 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
28471 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
28472 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
28473 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
28474
28475
28476 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28477 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28478 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28479 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28480 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053028481 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028482 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028483 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
28484
28485 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28486 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28487 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028488 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028489 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
28490
28491 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28492 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28493 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28494 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
28495
28496 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28497 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
28498 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28499 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
28500
Rohit Kumara5077932017-09-10 22:05:05 +053028501 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28502 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
28503 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28504 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
28505
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028506 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28507 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28508 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28509 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28510 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28511 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28512 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28513 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028514 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028515 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028516 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
28517 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28518 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28519 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28520 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28521 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28522 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28523 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28524 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28525 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28526 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
28527
28528 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28529 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28530 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28531 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28532 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28533 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28534 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28535 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28536 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28537 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28538 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28539 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
28540
28541 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28542 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28543 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28544 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28545 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28546 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28547 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28548 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28549 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28550 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28551 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070028552 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028553 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
28554
kunleizdf5a00a2017-11-27 15:27:36 +080028555 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28556 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028557 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028558
28559 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28560 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028561 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028562
28563 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28564 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028565 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
28566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028567 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
28568 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028569 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28570 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28571 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28572 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
28573
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028574 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
28575 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028576 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28577 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28578 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28579 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
28580
28581 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28582 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28583 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28584 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
28585 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28586 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28587 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
28588 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
28589 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28590 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
28591 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
28592 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
28593 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
28594
28595 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28596 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28597 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28598 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28599 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028600 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028601 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28602 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28603 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28604 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28605 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28606 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28607 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28608 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
28609
28610 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28611 {"HDMI", NULL, "HDMI_RX Port Mixer"},
28612
28613 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28614 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
28615
Karthikeyan Mani57550082018-05-03 18:43:58 -070028616 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
28617 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
28618
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028619 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28620 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
28621
28622 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28623 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28624 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
28625
28626 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28627 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28628 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28629 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028630 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028631 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028632 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28633 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28634 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28635 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028636 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028637 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
28638
28639 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28640 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28641 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28642 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028643 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028644 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028645 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28646 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28647 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028648 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028649 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
28650
28651 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28652 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28653 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28654 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028655 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028656 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028657 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28658 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28659 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
28660
28661 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28662 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28663 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28664 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028665 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028666 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028667 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28668 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28669 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28670 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28671 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
28672
Rohit Kumara5077932017-09-10 22:05:05 +053028673 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28674 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28675 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28676 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28677 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028678 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028679 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28680 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28681 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
28682
Karthikeyan Manic3700752019-03-11 18:33:53 -070028683 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28684 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28685 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28686 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28687 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
28688 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28689 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28690 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
28691
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028692 /* Backend Enablement */
28693
28694 {"BE_OUT", NULL, "PRI_I2S_RX"},
28695 {"BE_OUT", NULL, "SEC_I2S_RX"},
28696 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
28697 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
28698 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
28699 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28700 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
28701 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
28702 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
28703 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
28704 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028705 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028706 {"BE_OUT", NULL, "USB_AUDIO_RX"},
28707 {"BE_OUT", NULL, "HDMI"},
28708 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070028709 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028710 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
28711 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028712 {"BE_OUT", NULL, "MI2S_RX"},
28713 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
28714 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028715 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028716 {"BE_OUT", NULL, "TERT_MI2S_RX"},
28717 {"BE_OUT", NULL, "SEC_MI2S_RX"},
28718 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
28719 {"BE_OUT", NULL, "PRI_MI2S_RX"},
28720 {"BE_OUT", NULL, "INT0_MI2S_RX"},
28721 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028722 {"BE_OUT", NULL, "INT2_MI2S_RX"},
28723 {"BE_OUT", NULL, "INT3_MI2S_RX"},
28724 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028725 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28726 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
28727 {"BE_OUT", NULL, "INT_FM_RX"},
28728 {"BE_OUT", NULL, "PCM_RX"},
28729 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28730 {"BE_OUT", NULL, "AUX_PCM_RX"},
28731 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
28732 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
28733 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028734 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028735 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028736 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28737 {"BE_OUT", NULL, "INT_FM_RX"},
28738 {"BE_OUT", NULL, "PCM_RX"},
28739 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28740 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
28741 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
28742 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
28743 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
28744 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
28745 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
28746 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
28747 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
28748 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
28749 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028750 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028751 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
28752 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
28753 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
28754 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
28755 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
28756 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
28757 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
28758 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
28759 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028760 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053028761 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
28762 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
28763 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
28764 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080028765 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028766 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
28767 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
28768 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
28769 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028770 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
28771 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028772 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
28773 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
28774 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
28775 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
28776 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
28777 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
28778 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
28779 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028780
28781 {"PRI_I2S_TX", NULL, "BE_IN"},
28782 {"MI2S_TX", NULL, "BE_IN"},
28783 {"QUAT_MI2S_TX", NULL, "BE_IN"},
28784 {"QUIN_MI2S_TX", NULL, "BE_IN"},
28785 {"PRI_MI2S_TX", NULL, "BE_IN"},
28786 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028787 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028788 {"INT2_MI2S_TX", NULL, "BE_IN"},
28789 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028790 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028791 {"INT5_MI2S_TX", NULL, "BE_IN"},
28792 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028793 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028794 {"SLIMBUS_0_TX", NULL, "BE_IN" },
28795 {"SLIMBUS_1_TX", NULL, "BE_IN" },
28796 {"SLIMBUS_3_TX", NULL, "BE_IN" },
28797 {"SLIMBUS_4_TX", NULL, "BE_IN" },
28798 {"SLIMBUS_5_TX", NULL, "BE_IN" },
28799 {"SLIMBUS_6_TX", NULL, "BE_IN" },
28800 {"SLIMBUS_7_TX", NULL, "BE_IN" },
28801 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053028802 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028803 {"USB_AUDIO_TX", NULL, "BE_IN" },
28804 {"INT_BT_SCO_TX", NULL, "BE_IN"},
28805 {"INT_FM_TX", NULL, "BE_IN"},
28806 {"PCM_TX", NULL, "BE_IN"},
28807 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28808 {"BE_OUT", NULL, "STUB_RX"},
28809 {"STUB_TX", NULL, "BE_IN"},
28810 {"STUB_1_TX", NULL, "BE_IN"},
28811 {"BE_OUT", NULL, "AUX_PCM_RX"},
28812 {"AUX_PCM_TX", NULL, "BE_IN"},
28813 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
28814 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
28815 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028816 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028817 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028818 {"INCALL_RECORD_TX", NULL, "BE_IN"},
28819 {"INCALL_RECORD_RX", NULL, "BE_IN"},
28820 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
28821 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028822 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
28823 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028824 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
28825 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28826 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28827 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
28828 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028829 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
28830 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028831 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
28832 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
28833 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
28834 {"PRI_TDM_TX_0", NULL, "BE_IN"},
28835 {"PRI_TDM_TX_1", NULL, "BE_IN"},
28836 {"PRI_TDM_TX_2", NULL, "BE_IN"},
28837 {"PRI_TDM_TX_3", NULL, "BE_IN"},
28838 {"SEC_TDM_TX_0", NULL, "BE_IN"},
28839 {"SEC_TDM_TX_1", NULL, "BE_IN"},
28840 {"SEC_TDM_TX_2", NULL, "BE_IN"},
28841 {"SEC_TDM_TX_3", NULL, "BE_IN"},
28842 {"TERT_TDM_TX_0", NULL, "BE_IN"},
28843 {"TERT_TDM_TX_1", NULL, "BE_IN"},
28844 {"TERT_TDM_TX_2", NULL, "BE_IN"},
28845 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028846 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028847 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
28848 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
28849 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
28850 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028851 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053028852 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028853 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
28854 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
28855 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
28856 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080028857 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028858 {"SEN_TDM_TX_0", NULL, "BE_IN"},
28859 {"SEN_TDM_TX_1", NULL, "BE_IN"},
28860 {"SEN_TDM_TX_2", NULL, "BE_IN"},
28861 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028862 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
28863 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
28864 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
28865 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
28866 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080028867 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028868 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
28869 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
28870 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
28871 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
28872 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
28873 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028874 {"PRI_SPDIF_TX", NULL, "BE_IN"},
28875 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028876};
28877
28878static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
28879 struct snd_pcm_hw_params *params)
28880{
28881 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28882 unsigned int be_id = rtd->dai_link->id;
28883
28884 if (be_id >= MSM_BACKEND_DAI_MAX) {
28885 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28886 return -EINVAL;
28887 }
28888
28889 mutex_lock(&routing_lock);
28890 msm_bedais[be_id].sample_rate = params_rate(params);
28891 msm_bedais[be_id].channel = params_channels(params);
28892 msm_bedais[be_id].format = params_format(params);
28893 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28894 __func__, msm_bedais[be_id].sample_rate,
28895 msm_bedais[be_id].format, be_id);
28896 mutex_unlock(&routing_lock);
28897 return 0;
28898}
28899
28900static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28901{
28902 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28903 unsigned int be_id = rtd->dai_link->id;
28904 int i, session_type, path_type, topology;
28905 struct msm_pcm_routing_bdai_data *bedai;
28906 struct msm_pcm_routing_fdai_data *fdai;
28907
28908 pr_debug("%s: substream->pcm->id:%s\n",
28909 __func__, substream->pcm->id);
28910
28911 if (be_id >= MSM_BACKEND_DAI_MAX) {
28912 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28913 return -EINVAL;
28914 }
28915
28916 bedai = &msm_bedais[be_id];
28917 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28918 0 : 1);
28919 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28920 path_type = ADM_PATH_PLAYBACK;
28921 else
28922 path_type = ADM_PATH_LIVE_REC;
28923
28924 mutex_lock(&routing_lock);
28925 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28926 if (!is_mm_lsm_fe_id(i))
28927 continue;
28928 fdai = &fe_dai_map[i][session_type];
28929 if (fdai->strm_id != INVALID_SESSION) {
28930 int idx;
28931 int port_id;
28932 unsigned long copp =
28933 session_copp_map[i][session_type][be_id];
28934 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28935 if (test_bit(idx, &copp))
28936 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028937
28938 if (idx >= MAX_COPPS_PER_PORT) {
28939 pr_debug("%s: copp idx is invalid, exiting\n",
28940 __func__);
28941 continue;
28942 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028943 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028944 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028945 topology = adm_get_topology_for_port_copp_idx(port_id,
28946 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028947 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028948 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028949 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28950 __func__, copp, i, session_type, be_id,
28951 topology);
28952 clear_bit(idx,
28953 &session_copp_map[i][session_type][be_id]);
28954 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028955 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028956 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028957 topology);
28958 }
28959 }
28960
28961 bedai->active = 0;
28962 bedai->sample_rate = 0;
28963 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028964 mutex_unlock(&routing_lock);
28965
28966 return 0;
28967}
28968
28969static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28970{
28971 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28972 unsigned int be_id = rtd->dai_link->id;
28973 int i, path_type, topology;
28974 int session_type = INVALID_SESSION;
28975 struct msm_pcm_routing_bdai_data *bedai;
28976 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028977 uint16_t bits_per_sample = 16, voc_path_type, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028978 struct msm_pcm_routing_fdai_data *fdai;
28979 u32 session_id;
28980 struct media_format_info voc_be_media_format;
28981 bool is_lsm;
28982
28983 pr_debug("%s: substream->pcm->id:%s\n",
28984 __func__, substream->pcm->id);
28985
28986 if (be_id >= MSM_BACKEND_DAI_MAX) {
28987 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28988 return -EINVAL;
28989 }
28990
28991 bedai = &msm_bedais[be_id];
28992
28993 mutex_lock(&routing_lock);
28994 if (bedai->active == 1)
28995 goto done; /* Ignore prepare if back-end already active */
28996
28997 /* AFE port is not active at this point. However, still
28998 * go ahead setting active flag under the notion that
28999 * QDSP6 is able to handle ADM starting before AFE port
29000 * is started.
29001 */
29002 bedai->active = 1;
29003
29004 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
29005 if (!(is_mm_lsm_fe_id(i) &&
29006 route_check_fe_id_adm_support(i)))
29007 continue;
29008
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029009 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
29010 SESSION_TYPE_RX : SESSION_TYPE_TX;
29011 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029012 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029013 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029014 path_type = ADM_PATH_COMPRESSED_RX;
29015 else
29016 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029017 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029018 if ((fdai->passthr_mode != LEGACY_PCM) &&
29019 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020029020 path_type = ADM_PATH_COMPRESSED_TX;
29021 else
29022 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029023 }
29024
29025 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
29026 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029027 if (fdai->strm_id != INVALID_SESSION) {
29028 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053029029 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029030
29031 if (session_type == SESSION_TYPE_TX &&
29032 fdai->be_srate &&
29033 (fdai->be_srate != bedai->sample_rate)) {
29034 pr_debug("%s: flush strm %d diff BE rates\n",
29035 __func__,
29036 fdai->strm_id);
29037
29038 if (fdai->event_info.event_func)
29039 fdai->event_info.event_func(
29040 MSM_PCM_RT_EVT_BUF_RECFG,
29041 fdai->event_info.priv_data);
29042 fdai->be_srate = 0; /* might not need it */
29043 }
29044 bits_per_sample = msm_routing_get_bit_width(
29045 bedai->format);
29046
29047 app_type =
29048 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
29049 if (app_type && is_lsm) {
29050 app_type_idx =
29051 msm_pcm_routing_get_lsm_app_type_idx(app_type);
29052 sample_rate =
29053 fe_dai_app_type_cfg[i][session_type][be_id]
29054 .sample_rate;
29055 bits_per_sample =
29056 lsm_app_type_cfg[app_type_idx].bit_width;
29057 } else if (app_type) {
29058 app_type_idx =
29059 msm_pcm_routing_get_app_type_idx(app_type);
29060 sample_rate =
29061 fe_dai_app_type_cfg[i][session_type]
29062 [be_id].sample_rate;
29063 bits_per_sample =
29064 app_type_cfg[app_type_idx].bit_width;
29065 } else
29066 sample_rate = bedai->sample_rate;
29067 /*
29068 * check if ADM needs to be configured with different
29069 * channel mapping than backend
29070 */
29071 if (!bedai->adm_override_ch)
29072 channels = bedai->channel;
29073 else
29074 channels = bedai->adm_override_ch;
29075 acdb_dev_id =
29076 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
29077 topology = msm_routing_get_adm_topology(i, session_type,
29078 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020029079
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029080 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
29081 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
29082 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020029083 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
29084
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053029085 be_bit_width = msm_routing_get_bit_width(
29086 bedai->format);
29087
29088 if (hifi_filter_enabled && (bedai->sample_rate == 384000
29089 || bedai->sample_rate == 352800) &&
29090 be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029091 bits_per_sample = msm_routing_get_bit_width(
29092 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +053029093 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029094 sample_rate, channels, topology,
29095 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053029096 app_type, acdb_dev_id,
29097 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029098 if ((copp_idx < 0) ||
29099 (copp_idx >= MAX_COPPS_PER_PORT)) {
29100 pr_err("%s: adm open failed\n", __func__);
29101 mutex_unlock(&routing_lock);
29102 return -EINVAL;
29103 }
29104 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
29105 __func__, i, session_type, be_id);
29106 set_bit(copp_idx,
29107 &session_copp_map[i][session_type][be_id]);
29108
29109 if (msm_is_resample_needed(
29110 sample_rate,
29111 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053029112 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029113 bedai->sample_rate);
29114
29115 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029116 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029117 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029118 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053029119 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029120 topology, channels);
29121 }
29122 }
29123
29124 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
29125 session_id = msm_pcm_routing_get_voc_sessionid(i);
29126 if (session_id) {
29127 pr_debug("%s voice session_id: 0x%x\n", __func__,
29128 session_id);
29129
29130 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
29131 voc_path_type = RX_PATH;
29132 else
29133 voc_path_type = TX_PATH;
29134
29135 voc_set_route_flag(session_id, voc_path_type, 1);
29136
29137 memset(&voc_be_media_format, 0,
29138 sizeof(struct media_format_info));
29139
29140 voc_be_media_format.port_id = bedai->port_id;
29141 voc_be_media_format.num_channels = bedai->channel;
29142 voc_be_media_format.sample_rate = bedai->sample_rate;
29143 voc_be_media_format.bits_per_sample = bedai->format;
29144 /* Defaulting this to 1 for voice call usecases */
29145 voc_be_media_format.channel_mapping[0] = 1;
29146
29147 voc_set_device_config(session_id, voc_path_type,
29148 &voc_be_media_format);
29149
29150 if (voc_get_route_flag(session_id, RX_PATH) &&
29151 voc_get_route_flag(session_id, TX_PATH))
29152 voc_enable_device(session_id);
29153 }
29154 }
29155
29156 /* Check if backend is an external ec ref port and set as needed */
29157 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
29158
29159 memset(&voc_be_media_format, 0,
29160 sizeof(struct media_format_info));
29161
29162 /* Get format info for ec ref port from msm_bedais[] */
29163 voc_be_media_format.port_id = bedai->port_id;
29164 voc_be_media_format.num_channels = bedai->channel;
29165 voc_be_media_format.bits_per_sample = bedai->format;
29166 voc_be_media_format.sample_rate = bedai->sample_rate;
29167 /* Defaulting this to 1 for voice call usecases */
29168 voc_be_media_format.channel_mapping[0] = 1;
29169 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
29170 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
29171 __func__, voc_be_media_format.port_id,
29172 voc_be_media_format.num_channels,
29173 voc_be_media_format.bits_per_sample,
29174 voc_be_media_format.sample_rate);
29175 }
29176
29177done:
29178 mutex_unlock(&routing_lock);
29179
29180 return 0;
29181}
29182
29183static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
29184 int fe_id)
29185{
29186 int index, topo_id, be_idx;
29187 unsigned long pp_config = 0;
29188 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029189 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029190 bool compr_passthr_mode = true;
29191
29192 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
29193
29194 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
29195 pr_err("%s: Device pp params on invalid port %d\n",
29196 __func__, port_id);
29197 return -EINVAL;
29198 }
29199
29200 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
29201 if (port_id == msm_bedais[be_idx].port_id)
29202 break;
29203 }
29204
29205 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29206 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
29207 return -EINVAL;
29208 }
29209
29210 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
29211 if (msm_bedais_pp_params[index].port_id == port_id)
29212 break;
29213 }
29214 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
29215 pr_err("%s: Invalid backend pp params index %d\n",
29216 __func__, index);
29217 return -EINVAL;
29218 }
29219
29220 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
29221 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
29222 pr_err("%s: Invalid passthrough topology 0x%x\n",
29223 __func__, topo_id);
29224 return -EINVAL;
29225 }
29226
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029227 session_type =
29228 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
29229 SESSION_TYPE_RX : SESSION_TYPE_TX;
29230
29231 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
29232 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029233 compr_passthr_mode = false;
29234
29235 pp_config = msm_bedais_pp_params[index].pp_params_config;
29236 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
29237 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
29238 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
29239 mute_on = msm_bedais_pp_params[index].mute_on;
29240 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29241 adm_send_compressed_device_mute(port_id,
29242 copp_idx,
29243 mute_on);
29244 }
29245 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
29246 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
29247 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
29248 &pp_config);
29249 latency = msm_bedais_pp_params[index].latency;
29250 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29251 adm_send_compressed_device_latency(port_id,
29252 copp_idx,
29253 latency);
29254 }
29255 return 0;
29256}
29257
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029258static uint32_t msm_routing_get_topology(size_t data_size, void *data)
29259{
29260 uint32_t topology = NULL_COPP_TOPOLOGY;
29261 void *cal_info = NULL;
29262 uint32_t size = 0;
29263
29264 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053029265 if (data_size < sizeof(struct audio_cal_type_basic) +
29266 sizeof(struct audio_cal_info_adm_top)) {
29267 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
29268 goto done;
29269 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029270 size = data_size - sizeof(struct audio_cal_type_basic);
29271 cal_info = kzalloc(size, GFP_KERNEL);
29272
29273 if (!cal_info)
29274 goto done;
29275
29276 memcpy(cal_info,
29277 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
29278
29279 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
29280 kfree(cal_info);
29281 cal_info = NULL;
29282
29283done:
29284 pr_debug("%s: Using topology %d\n", __func__, topology);
29285
29286 return topology;
29287}
29288
29289static void msm_routing_load_topology(size_t data_size, void *data)
29290{
29291 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029292 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029293
29294 topology_id = msm_routing_get_topology(data_size, data);
29295 if (topology_id != NULL_COPP_TOPOLOGY)
29296 ret = q6core_load_unload_topo_modules(topology_id,
29297 CORE_LOAD_TOPOLOGY);
29298 if (ret < 0)
29299 pr_debug("%s %d load topology failed\n",
29300 __func__, topology_id);
29301
29302}
29303
29304static void msm_routing_unload_topology(uint32_t topology_id)
29305{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029306 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029307
29308 if (topology_id != NULL_COPP_TOPOLOGY)
29309 ret = q6core_load_unload_topo_modules(topology_id,
29310 CORE_UNLOAD_TOPOLOGY);
29311 if (ret < 0)
29312 pr_debug("%s %d unload topology failed\n",
29313 __func__, topology_id);
29314
29315}
29316
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029317static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29318 struct snd_ctl_elem_value *ucontrol)
29319{
29320 int pp_id = ucontrol->value.integer.value[0];
29321 int port_id = 0;
29322 int index, be_idx, i, topo_id, idx;
29323 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029324 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029325 bool compr_passthr_mode = true;
29326
29327 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
29328
29329 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
29330 port_id = msm_bedais[be_idx].port_id;
29331 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
29332 break;
29333 }
29334
29335 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29336 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
29337 return -EINVAL;
29338 }
29339
29340 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
29341 if (msm_bedais_pp_params[index].port_id == port_id)
29342 break;
29343 }
29344 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
29345 pr_err("%s: Invalid pp params backend index %d\n",
29346 __func__, index);
29347 return -EINVAL;
29348 }
29349
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029350 session_type =
29351 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
29352 SESSION_TYPE_RX : SESSION_TYPE_TX;
29353
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029354 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
29355 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029356 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
29357 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029358 compr_passthr_mode = false;
29359
29360 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29361 unsigned long copp =
29362 session_copp_map[i]
29363 [SESSION_TYPE_RX][be_idx];
29364 if (!test_bit(idx, &copp))
29365 continue;
29366 topo_id = adm_get_topology_for_port_copp_idx(port_id,
29367 idx);
29368 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
29369 continue;
29370 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
29371 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029372 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029373 switch (pp_id) {
29374 case ADM_PP_PARAM_MUTE_ID:
29375 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
29376 mute = ucontrol->value.integer.value[1] ? true : false;
29377 msm_bedais_pp_params[index].mute_on = mute;
29378 set_bit(ADM_PP_PARAM_MUTE_BIT,
29379 &msm_bedais_pp_params[index].pp_params_config);
29380 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29381 adm_send_compressed_device_mute(port_id,
29382 idx, mute);
29383 break;
29384 case ADM_PP_PARAM_LATENCY_ID:
29385 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
29386 msm_bedais_pp_params[index].latency =
29387 ucontrol->value.integer.value[1];
29388 set_bit(ADM_PP_PARAM_LATENCY_BIT,
29389 &msm_bedais_pp_params[index].pp_params_config);
29390 latency = msm_bedais_pp_params[index].latency =
29391 ucontrol->value.integer.value[1];
29392 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29393 adm_send_compressed_device_latency(port_id,
29394 idx, latency);
29395 break;
29396 default:
29397 pr_info("%s, device pp param %d not supported\n",
29398 __func__, pp_id);
29399 break;
29400 }
29401 }
29402 }
29403 return 0;
29404}
29405
29406static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29407 struct snd_ctl_elem_value *ucontrol)
29408{
29409 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
29410 return 0;
29411}
29412
29413static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
29414 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
29415 0, 3, msm_routing_get_device_pp_params_mixer,
29416 msm_routing_put_device_pp_params_mixer),
29417};
29418
29419static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
29420 struct snd_ctl_elem_value *ucontrol)
29421{
29422 ucontrol->value.integer.value[0] =
29423 core_get_license_status(ASM_MEDIA_FMT_APTX);
29424 pr_debug("%s: status %ld\n", __func__,
29425 ucontrol->value.integer.value[0]);
29426 return 0;
29427}
29428
29429static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
29430 struct snd_ctl_elem_value *ucontrol)
29431{
29432 int32_t status = 0;
29433
29434 status = core_set_license(ucontrol->value.integer.value[0],
29435 APTX_CLASSIC_DEC_LICENSE_ID);
29436 pr_debug("%s: status %d\n", __func__, status);
29437 return status;
29438}
29439
29440static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
29441 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
29442 0xFFFF, 0, msm_aptx_dec_license_control_get,
29443 msm_aptx_dec_license_control_put),
29444};
29445
Rohit kumar63ffaa72019-02-01 18:05:33 +053029446static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
29447 struct snd_ctl_elem_value *ucontrol)
29448{
29449 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
29450 uint32_t be_idx = ucontrol->value.integer.value[0];
29451 int i;
29452
Rohit kumar2b4cbd82019-04-30 13:31:25 +053029453 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29454 pr_err("%s: Invalid Backend index %d\n", __func__, be_idx);
29455 return -EINVAL;
29456 }
29457
Rohit kumar63ffaa72019-02-01 18:05:33 +053029458 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
29459 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
29460 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
29461 pr_err("%s: Invalid channel map %d\n",
29462 __func__, channel_map[i]);
29463 return -EINVAL;
29464 }
29465 }
29466 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
29467
29468 return 0;
29469}
29470
29471static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
29472 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
29473 MSM_BACKEND_DAI_MAX, 0,
29474 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
29475 msm_routing_put_port_chmap_mixer),
29476};
29477
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029478static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
29479 struct snd_ctl_elem_info *uinfo)
29480{
29481 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
29482 uinfo->count = sizeof(be_dai_name_table);
29483 return 0;
29484}
29485
29486static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
29487 unsigned int __user *bytes,
29488 unsigned int size)
29489{
29490 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029491 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029492
29493 if (size < sizeof(be_dai_name_table)) {
29494 pr_err("%s: invalid size %d requested, returning\n",
29495 __func__, size);
29496 ret = -EINVAL;
29497 goto done;
29498 }
29499
29500 /*
29501 * Fill be_dai_name_table from msm_bedais table to reduce code changes
29502 * needed when adding new backends
29503 */
29504 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29505 be_dai_name_table[i].be_id = i;
29506 strlcpy(be_dai_name_table[i].be_name,
29507 msm_bedais[i].name,
29508 LPASS_BE_NAME_MAX_LENGTH);
29509 }
29510
29511 ret = copy_to_user(bytes, &be_dai_name_table,
29512 sizeof(be_dai_name_table));
29513 if (ret) {
29514 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
29515 ret = -EFAULT;
29516 }
29517
29518done:
29519 return ret;
29520}
29521
29522static const struct snd_kcontrol_new
29523 msm_routing_be_dai_name_table_mixer_controls[] = {
29524 {
29525 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
29526 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
29527 .info = msm_routing_be_dai_name_table_info,
29528 .name = "Backend DAI Name Table",
29529 .tlv.c = snd_soc_bytes_tlv_callback,
29530 .private_value = (unsigned long) &(struct soc_bytes_ext) {
29531 .max = sizeof(be_dai_name_table),
29532 .get = msm_routing_be_dai_name_table_tlv_get,
29533 }
29534 },
29535};
29536
29537static int msm_routing_stereo_channel_reverse_control_get(
29538 struct snd_kcontrol *kcontrol,
29539 struct snd_ctl_elem_value *ucontrol)
29540{
29541 ucontrol->value.integer.value[0] = swap_ch;
29542 pr_debug("%s: Swap channel value: %ld\n", __func__,
29543 ucontrol->value.integer.value[0]);
29544 return 0;
29545}
29546
29547static int msm_routing_stereo_channel_reverse_control_put(
29548 struct snd_kcontrol *kcontrol,
29549 struct snd_ctl_elem_value *ucontrol)
29550{
29551 int i, idx, be_index, port_id;
29552 int ret = 0;
29553 unsigned long copp;
29554
29555 pr_debug("%s Swap channel value:%ld\n", __func__,
29556 ucontrol->value.integer.value[0]);
29557
29558 swap_ch = ucontrol->value.integer.value[0];
29559
29560 mutex_lock(&routing_lock);
29561 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
29562 port_id = msm_bedais[be_index].port_id;
29563 if (!msm_bedais[be_index].active)
29564 continue;
29565
29566 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
29567 MSM_FRONTEND_DAI_MM_SIZE) {
29568 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
29569 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29570 if (!test_bit(idx, &copp))
29571 continue;
29572
29573 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
29574 __func__, port_id, idx);
29575 ret = adm_swap_speaker_channels(
29576 port_id, idx,
29577 msm_bedais[be_index].sample_rate,
29578 swap_ch);
29579 if (ret) {
29580 pr_err("%s:Swap_channel failed, err=%d\n",
29581 __func__, ret);
29582 goto done;
29583 }
29584 }
29585 }
29586 }
29587done:
29588 mutex_unlock(&routing_lock);
29589 return ret;
29590}
29591
29592static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
29593 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
29594 1, 0, msm_routing_stereo_channel_reverse_control_get,
29595 msm_routing_stereo_channel_reverse_control_put),
29596};
29597
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029598static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
29599 struct snd_ctl_elem_info *uinfo)
29600{
29601 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
29602 uinfo->count = 1;
29603 return 0;
29604}
29605
29606static int msm_routing_instance_id_support_put(
29607 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29608{
29609 bool supported = ucontrol->value.integer.value[0] ? true : false;
29610
29611 q6common_update_instance_id_support(supported);
29612 return 0;
29613}
29614
29615static int msm_routing_instance_id_support_get(
29616 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29617{
29618 bool supported = false;
29619
29620 supported = q6common_is_instance_id_supported();
29621 ucontrol->value.integer.value[0] = supported ? 1 : 0;
29622
29623 return 0;
29624}
29625
29626static const struct snd_kcontrol_new
29627 msm_routing_feature_support_mixer_controls[] = {
29628 {
29629 .access = SNDRV_CTL_ELEM_ACCESS_READ |
29630 SNDRV_CTL_ELEM_ACCESS_WRITE,
29631 .info = msm_routing_instance_id_support_info,
29632 .name = "Instance ID Support",
29633 .put = msm_routing_instance_id_support_put,
29634 .get = msm_routing_instance_id_support_get,
29635 },
29636};
29637
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029638static const struct snd_pcm_ops msm_routing_pcm_ops = {
29639 .hw_params = msm_pcm_routing_hw_params,
29640 .close = msm_pcm_routing_close,
29641 .prepare = msm_pcm_routing_prepare,
29642};
29643
29644/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080029645static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029646{
Meng Wangee084a02018-09-04 16:11:58 +080029647 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029648 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080029649 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
29650 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080029651 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029652 ARRAY_SIZE(intercon));
29653
Meng Wangee084a02018-09-04 16:11:58 +080029654 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029655
Meng Wangee084a02018-09-04 16:11:58 +080029656 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029657 ARRAY_SIZE(lsm_controls));
29658
Meng Wangee084a02018-09-04 16:11:58 +080029659 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029660 ARRAY_SIZE(aanc_slim_0_rx_mux));
29661
Meng Wangee084a02018-09-04 16:11:58 +080029662 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053029663 ARRAY_SIZE(aanc_noise_level));
29664
Meng Wangee084a02018-09-04 16:11:58 +080029665 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029666 ARRAY_SIZE(msm_voc_session_controls));
29667
Meng Wangee084a02018-09-04 16:11:58 +080029668 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029669 ARRAY_SIZE(app_type_cfg_controls));
29670
Meng Wangee084a02018-09-04 16:11:58 +080029671 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029672 ARRAY_SIZE(lsm_app_type_cfg_controls));
29673
Meng Wangee084a02018-09-04 16:11:58 +080029674 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070029675 ARRAY_SIZE(module_cfg_controls));
29676
Meng Wangee084a02018-09-04 16:11:58 +080029677 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029678 stereo_to_custom_stereo_controls,
29679 ARRAY_SIZE(stereo_to_custom_stereo_controls));
29680
Meng Wangee084a02018-09-04 16:11:58 +080029681 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029682 ARRAY_SIZE(ec_ref_param_controls));
29683
Meng Wangee084a02018-09-04 16:11:58 +080029684 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029685 ARRAY_SIZE(channel_mixer_controls));
29686
Meng Wangee084a02018-09-04 16:11:58 +080029687 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029688
Meng Wangee084a02018-09-04 16:11:58 +080029689 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029690
Meng Wangee084a02018-09-04 16:11:58 +080029691 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029692
Meng Wangee084a02018-09-04 16:11:58 +080029693 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029694 use_ds1_or_ds2_controls,
29695 ARRAY_SIZE(use_ds1_or_ds2_controls));
29696
Meng Wangee084a02018-09-04 16:11:58 +080029697 snd_soc_add_component_controls(component,
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029698 hifi_filter_controls,
29699 ARRAY_SIZE(hifi_filter_controls));
29700
29701 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029702 device_pp_params_mixer_controls,
29703 ARRAY_SIZE(device_pp_params_mixer_controls));
29704
Meng Wangee084a02018-09-04 16:11:58 +080029705 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029706 msm_routing_be_dai_name_table_mixer_controls,
29707 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
29708
Meng Wangee084a02018-09-04 16:11:58 +080029709 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029710 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029711 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029712 ARRAY_SIZE(adm_channel_config_controls));
29713
Meng Wangee084a02018-09-04 16:11:58 +080029714 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029715 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029716 snd_soc_add_component_controls(component,
29717 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029718 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080029719 snd_soc_add_component_controls(
29720 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029721 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053029722 snd_soc_add_component_controls(component,
29723 port_multi_channel_map_mixer_controls,
29724 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029725
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029726 return 0;
29727}
29728
29729int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
29730{
29731 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
29732}
29733
29734void msm_routing_pcm_free(struct snd_pcm *pcm)
29735{
29736 msm_pcm_routing_hwdep_free(pcm);
29737}
29738
Meng Wangee084a02018-09-04 16:11:58 +080029739static struct snd_soc_component_driver msm_soc_routing_component = {
29740 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029741 .ops = &msm_routing_pcm_ops,
29742 .probe = msm_routing_probe,
29743 .pcm_new = msm_routing_pcm_new,
29744 .pcm_free = msm_routing_pcm_free,
29745};
29746
29747static int msm_routing_pcm_probe(struct platform_device *pdev)
29748{
29749
29750 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080029751 return snd_soc_register_component(&pdev->dev,
29752 &msm_soc_routing_component,
29753 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029754}
29755
29756static int msm_routing_pcm_remove(struct platform_device *pdev)
29757{
Meng Wangee084a02018-09-04 16:11:58 +080029758 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029759 return 0;
29760}
29761
29762static const struct of_device_id msm_pcm_routing_dt_match[] = {
29763 {.compatible = "qcom,msm-pcm-routing"},
29764 {}
29765};
29766MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
29767
29768static struct platform_driver msm_routing_pcm_driver = {
29769 .driver = {
29770 .name = "msm-pcm-routing",
29771 .owner = THIS_MODULE,
29772 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080029773 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029774 },
29775 .probe = msm_routing_pcm_probe,
29776 .remove = msm_routing_pcm_remove,
29777};
29778
29779int msm_routing_check_backend_enabled(int fedai_id)
29780{
29781 int i;
29782
29783 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
29784 /* bad ID assigned in machine driver */
29785 pr_err("%s: bad MM ID\n", __func__);
29786 return 0;
29787 }
29788 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29789 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
29790 return msm_bedais[i].active;
29791 }
29792 return 0;
29793}
29794
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029795static int get_cal_type_index(int32_t cal_type)
29796{
29797 int ret = -EINVAL;
29798
29799 switch (cal_type) {
29800 case ADM_TOPOLOGY_CAL_TYPE:
29801 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
29802 break;
29803 case ADM_LSM_TOPOLOGY_CAL_TYPE:
29804 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
29805 break;
29806 default:
29807 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
29808 }
29809 return ret;
29810}
29811
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029812static int msm_routing_set_cal(int32_t cal_type,
29813 size_t data_size, void *data)
29814{
29815 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029816 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029817 pr_debug("%s\n", __func__);
29818
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029819 cal_index = get_cal_type_index(cal_type);
29820 if (cal_index < 0) {
29821 pr_err("%s: Could not get cal index %d\n",
29822 __func__, cal_index);
29823 ret = -EINVAL;
29824 goto done;
29825 }
29826
29827 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029828 if (ret < 0) {
29829 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
29830 __func__, ret, cal_type);
29831 ret = -EINVAL;
29832 goto done;
29833 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029834 /* Pre-load if it is ADM topology */
29835 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
29836 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
29837 msm_routing_load_topology(data_size, data);
29838 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029839done:
29840 return ret;
29841}
29842
29843static void msm_routing_delete_cal_data(void)
29844{
29845 pr_debug("%s\n", __func__);
29846
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029847 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029848}
29849
29850static int msm_routing_init_cal_data(void)
29851{
29852 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029853 struct cal_type_info cal_type_info[] = {
29854 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029855 {NULL, NULL, NULL,
29856 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029857 {NULL, NULL, cal_utils_match_buf_num} },
29858
29859 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
29860 {NULL, NULL, NULL,
29861 msm_routing_set_cal, NULL, NULL} },
29862 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029863 };
29864 pr_debug("%s\n", __func__);
29865
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029866 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
29867 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029868 if (ret < 0) {
29869 pr_err("%s: could not create cal type!\n",
29870 __func__);
29871 ret = -EINVAL;
29872 goto err;
29873 }
29874
29875 return ret;
29876err:
29877 msm_routing_delete_cal_data();
29878 return ret;
29879}
29880
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053029881int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029882{
29883 mutex_init(&routing_lock);
29884 if (msm_routing_init_cal_data())
29885 pr_err("%s: could not init cal data!\n", __func__);
29886
29887 afe_set_routing_callback(
29888 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
29889
29890 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29891 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
29892
29893 return platform_driver_register(&msm_routing_pcm_driver);
29894}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029895
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053029896void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029897{
29898 msm_routing_delete_cal_data();
29899 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29900 mutex_destroy(&routing_lock);
29901 platform_driver_unregister(&msm_routing_pcm_driver);
29902}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029903
29904MODULE_DESCRIPTION("MSM routing platform driver");
29905MODULE_LICENSE("GPL v2");