blob: 93577727677bb6b96cb70cfc1ebe41d8d9aecfd0 [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;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305469 default:
5470 *index = 0; /* NONE */
5471 pr_err("%s: Invalid value %d\n", __func__, value);
5472 port_id = AFE_PORT_INVALID;
5473 break;
5474 }
5475
5476 return port_id;
5477}
5478
5479static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5480 struct snd_ctl_elem_value *ucontrol)
5481{
5482 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5483 mutex_lock(&routing_lock);
5484 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5485 mutex_unlock(&routing_lock);
5486
5487 return 0;
5488}
5489
5490static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5491 struct snd_ctl_elem_value *ucontrol)
5492{
5493 int value = ucontrol->value.integer.value[0];
5494
5495 mutex_lock(&routing_lock);
5496 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5497 &afe_loopback_tx_port_index);
5498 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5499 __func__, afe_loopback_tx_port_index);
5500 mutex_unlock(&routing_lock);
5501
5502 return 0;
5503}
5504
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305505static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5506 "32000", "44100", "48000", "96000", "192000", "384000"};
5507
5508static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005509 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_ch_text), ec_ref_ch_text),
5510 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_bit_format_text),
5511 ec_ref_bit_format_text),
5512 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rate_text), ec_ref_rate_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305513};
5514
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305515static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5516 "PRI_MI2S_TX", "SEC_MI2S_TX",
5517 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5518 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5519 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5520 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305521 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
5522 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005523 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305524 "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 -07005525 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005526 "DISPLAY_PORT1",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305527};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305528
5529static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5530 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5531};
5532
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305533static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5534 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5535 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5536 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5537 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5538 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5539 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5540 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5541 msm_route_ec_ref_params_enum[0],
5542 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5543 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5544 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5545 msm_ec_ref_chmixer_weights_put),
5546 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5547 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5548 msm_ec_ref_chmixer_weights_put),
5549 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
5550 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5551 msm_ec_ref_chmixer_weights_put),
5552 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
5553 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5554 msm_ec_ref_chmixer_weights_put),
5555 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5556 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5557 msm_ec_ref_chmixer_weights_put),
5558 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5559 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5560 msm_ec_ref_chmixer_weights_put),
5561 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5562 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5563};
5564
5565static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5566 struct snd_ctl_elem_value *ucontrol)
5567{
5568 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5569 mutex_lock(&routing_lock);
5570 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5571 mutex_unlock(&routing_lock);
5572
5573 return 0;
5574}
5575
5576static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5577 struct snd_ctl_elem_value *ucontrol)
5578{
5579 int value = ucontrol->value.integer.value[0];
5580 struct snd_soc_dapm_widget *widget =
5581 snd_soc_dapm_kcontrol_widget(kcontrol);
5582 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5583 struct snd_soc_dapm_update *update = NULL;
5584
5585 mutex_lock(&routing_lock);
5586 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5587 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5588 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5589 __func__, msm_route_ec_ref_rx);
5590 mutex_unlock(&routing_lock);
5591
5592 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5593 msm_route_ec_ref_rx, e, update);
5594 return 0;
5595}
5596
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305597static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5598 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5599 msm_route_ec_ref_rx_enum[0],
5600 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5601
5602static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5603 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5604 msm_route_ec_ref_rx_enum[0],
5605 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5606
5607static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5608 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5609 msm_route_ec_ref_rx_enum[0],
5610 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5611
5612static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5613 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5614 msm_route_ec_ref_rx_enum[0],
5615 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5616
5617static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5618 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5619 msm_route_ec_ref_rx_enum[0],
5620 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5621
5622static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5623 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5624 msm_route_ec_ref_rx_enum[0],
5625 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5626
5627static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5628 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5629 msm_route_ec_ref_rx_enum[0],
5630 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5631
5632static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5633 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5634 msm_route_ec_ref_rx_enum[0],
5635 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5636
Asish Bhattacharya34504582017-08-08 12:55:01 +05305637static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5638 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5639 msm_route_ec_ref_rx_enum[0],
5640 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5641
Laxminath Kasam38070be2017-08-17 18:21:59 +05305642static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5643 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5644 msm_route_ec_ref_rx_enum[0],
5645 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5646
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305647static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5648 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5649 msm_route_ec_ref_rx_enum[0],
5650 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5651
5652static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5653 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5654 msm_route_ec_ref_rx_enum[0],
5655 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5656
5657static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5658 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5659 msm_route_ec_ref_rx_enum[0],
5660 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5661
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305662static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5663 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5664 msm_route_ec_ref_rx_enum[0],
5665 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5666
5667static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5668 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5669 msm_route_ec_ref_rx_enum[0],
5670 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5671
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5673 struct snd_ctl_elem_value *ucontrol)
5674{
5675 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5676
5677 mutex_lock(&routing_lock);
5678 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5679 mutex_unlock(&routing_lock);
5680 return 0;
5681}
5682
5683static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5684 struct snd_ctl_elem_value *ucontrol)
5685{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305686 struct snd_soc_dapm_widget *widget =
5687 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 int mux = ucontrol->value.enumerated.item[0];
5689 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5690 int ret = 1;
5691 bool state = true;
5692 uint16_t ext_ec_ref_port_id;
5693 struct snd_soc_dapm_update *update = NULL;
5694
5695 if (mux >= e->items) {
5696 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5697 return -EINVAL;
5698 }
5699
5700 mutex_lock(&routing_lock);
5701 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5702
5703 switch (msm_route_ext_ec_ref) {
5704 case EXT_EC_REF_PRI_MI2S_TX:
5705 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5706 break;
5707 case EXT_EC_REF_SEC_MI2S_TX:
5708 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5709 break;
5710 case EXT_EC_REF_TERT_MI2S_TX:
5711 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5712 break;
5713 case EXT_EC_REF_QUAT_MI2S_TX:
5714 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5715 break;
5716 case EXT_EC_REF_QUIN_MI2S_TX:
5717 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5718 break;
5719 case EXT_EC_REF_SLIM_1_TX:
5720 ext_ec_ref_port_id = SLIMBUS_1_TX;
5721 break;
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005722 case EXT_EC_REF_PRI_TDM_TX:
5723 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
5724 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005725 case EXT_EC_REF_SEC_TDM_TX:
5726 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5727 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305728 case EXT_EC_REF_NONE:
5729 default:
5730 ext_ec_ref_port_id = AFE_PORT_INVALID;
5731 state = false;
5732 break;
5733 }
5734
5735 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5736 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5737
5738 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5739 mutex_unlock(&routing_lock);
5740 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5741 update);
5742 } else {
5743 ret = -EINVAL;
5744 mutex_unlock(&routing_lock);
5745 }
5746 return ret;
5747}
5748
5749static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5750 "SEC_MI2S_TX", "TERT_MI2S_TX",
5751 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005752 "SLIM_1_TX", "PRI_TDM_TX",
5753 "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305754
5755static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5756 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5757};
5758
5759static const struct snd_kcontrol_new voc_ext_ec_mux =
5760 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5761 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5762
5763
5764static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005801 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305803 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005805 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305807 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005809 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305811 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005813 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305815 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005817 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305819 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005821 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305823 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005825 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305827 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005829 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305831 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005833 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305835 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005837 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305839 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305841 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5842 MSM_BACKEND_DAI_PRI_I2S_RX,
5843 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005845 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5846 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305847 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005849 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5850 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305851 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5852 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305853 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5854 MSM_BACKEND_DAI_PRI_I2S_RX,
5855 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5856 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305857};
5858
5859static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005860 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305862 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005864 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005868 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005872 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005876 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005880 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305882 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005884 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305886 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005888 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305890 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005892 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305894 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005896 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305898 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005900 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305902 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005904 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5905 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305906 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005908 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5909 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305910 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005912 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5913 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305914 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005916 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5917 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305918 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005920 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5921 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305922 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005924 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5925 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305926 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005928 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5929 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305930 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005932 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5933 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305934 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5935 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305936 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5937 MSM_BACKEND_DAI_SEC_I2S_RX,
5938 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005940 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5941 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305942 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005944 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5945 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305946 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5947 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305948 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5949 MSM_BACKEND_DAI_SEC_I2S_RX,
5950 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5951 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305952};
5953
Ralf Herzc8701f72018-06-20 11:37:35 +02005954static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005955 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005956 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305957 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005959 SOC_DOUBLE_EXT("MultiMedia2", 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_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005963 SOC_DOUBLE_EXT("MultiMedia3", 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_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005967 SOC_DOUBLE_EXT("MultiMedia4", 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_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005971 SOC_DOUBLE_EXT("MultiMedia5", 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_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005975 SOC_DOUBLE_EXT("MultiMedia6", 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_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005979 SOC_DOUBLE_EXT("MultiMedia7", 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_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005983 SOC_DOUBLE_EXT("MultiMedia8", 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_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005987 SOC_DOUBLE_EXT("MultiMedia9", 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_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005991 SOC_DOUBLE_EXT("MultiMedia10", 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_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005995 SOC_DOUBLE_EXT("MultiMedia11", 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_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005999 SOC_DOUBLE_EXT("MultiMedia12", 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_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006003 SOC_DOUBLE_EXT("MultiMedia13", 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_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006007 SOC_DOUBLE_EXT("MultiMedia14", 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_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006011 SOC_DOUBLE_EXT("MultiMedia15", 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_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006015 SOC_DOUBLE_EXT("MultiMedia16", 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_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006019 SOC_DOUBLE_EXT("MultiMedia17", 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_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006023 SOC_DOUBLE_EXT("MultiMedia18", 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_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006027 SOC_DOUBLE_EXT("MultiMedia19", 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_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6030 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306031 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6032 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6033 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006035 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006036 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306037 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006039 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006040 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6041 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6042 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306043 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6044 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6045 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6046 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006047};
6048
6049static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
6050 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6052 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
6054 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6056 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
6058 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6060 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
6062 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6064 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
6066 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6068 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
6070 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6072 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
6074 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6075 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6076 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6077 msm_routing_put_audio_mixer),
6078 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6079 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6080 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6081 msm_routing_put_audio_mixer),
6082 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6083 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6084 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6085 msm_routing_put_audio_mixer),
6086 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6087 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6088 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6089 msm_routing_put_audio_mixer),
6090 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6091 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6092 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6093 msm_routing_put_audio_mixer),
6094 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6095 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6096 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6097 msm_routing_put_audio_mixer),
6098 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6099 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6100 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6101 msm_routing_put_audio_mixer),
6102 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6103 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6104 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6105 msm_routing_put_audio_mixer),
6106 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6107 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6108 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6109 msm_routing_put_audio_mixer),
6110 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6111 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6112 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6113 msm_routing_put_audio_mixer),
6114 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6115 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6116 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6117 msm_routing_put_audio_mixer),
6118 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6119 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6120 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6121 msm_routing_put_audio_mixer),
6122 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6123 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6124 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6125 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306126 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6127 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6128 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6129 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006130 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6131 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6132 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6133 msm_routing_put_audio_mixer),
6134 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6135 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306136 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6137 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306138 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6139 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6140 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6141 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306142};
6143
6144static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006145 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6146 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006149 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6150 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306151 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006153 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6154 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306155 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006157 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6158 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306159 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006161 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6162 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306163 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006165 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6166 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306167 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006169 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6170 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306171 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006173 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6174 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306175 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006177 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6178 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306179 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006181 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6182 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306183 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006185 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6186 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306187 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006189 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6190 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306191 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006193 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6194 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306195 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006197 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6198 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306199 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006201 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6202 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306203 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006205 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6206 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306207 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6208 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306209 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6210 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6211 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6212 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306213};
6214
6215static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006216 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6217 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306218 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006220 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6221 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306222 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006224 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6225 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306226 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006228 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6229 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306230 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006232 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6233 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306234 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006236 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6237 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306238 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006240 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6241 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306242 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006244 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6245 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306246 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006248 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6249 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306250 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006252 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6253 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306254 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006256 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6257 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306258 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006260 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6261 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306262 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006264 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6265 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306266 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006268 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6269 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306270 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006272 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6273 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306274 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006276 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6277 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306278 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006280 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6281 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306282 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006284 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6285 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306286 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006288 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6289 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306290 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6291 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306292 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6293 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6294 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006296 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6297 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306298 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006300 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6301 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306302 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6303 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306304 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6306 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306308};
6309
6310static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006311 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6312 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306313 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006315 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6316 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306317 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006319 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6320 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306321 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006323 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6324 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306325 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006327 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6328 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306329 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006331 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6332 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306333 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006335 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6336 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306337 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006339 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6340 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306341 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006343 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6344 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306345 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006347 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6348 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306349 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006351 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6352 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306353 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006355 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6356 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306357 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006359 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6360 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306361 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006363 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306365 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006367 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306369 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006371 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306373 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006375 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306377 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006379 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306381 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006383 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306385 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306387 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6389 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006391 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306393 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006395 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306397 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306399 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6401 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306403};
6404
6405static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6407 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6411 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006414 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6415 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006418 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6419 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006422 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6423 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306424 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006426 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6427 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006430 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306432 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006434 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006438 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006442 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006446 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306448 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006450 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306452 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006454 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306456 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006458 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306460 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006462 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306464 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006466 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006470 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306472 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006474 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306476 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006478 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306480 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306482 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_MI2S_RX,
6484 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006486 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306488 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006490 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306492 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306494 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_MI2S_RX,
6496 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306498};
6499
6500static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006501 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306503 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006521 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006557 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006561 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006565 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006569 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006573 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306577 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6579 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006581 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306583 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006585 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306587 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306589 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6591 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306593};
6594
6595static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006596 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306598 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006600 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006604 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306606 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006608 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006612 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006616 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306618 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006620 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006624 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006628 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306630 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006632 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006636 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306638 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006640 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006644 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006648 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306650 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006652 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306654 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006656 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006660 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306662 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006664 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306666 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006668 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306670 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306672 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6674 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006676 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306678 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006680 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306682 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306684 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6686 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306688
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689};
6690
Karthikeyan Manic3700752019-03-11 18:33:53 -07006691static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6692 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6694 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
6696 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6698 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
6700 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6702 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
6704 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6705 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6706 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6707 msm_routing_put_audio_mixer),
6708 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6709 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6710 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6711 msm_routing_put_audio_mixer),
6712 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6713 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6714 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6715 msm_routing_put_audio_mixer),
6716 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6717 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6718 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6719 msm_routing_put_audio_mixer),
6720 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6721 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6722 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6723 msm_routing_put_audio_mixer),
6724 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6725 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6726 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6727 msm_routing_put_audio_mixer),
6728 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6729 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6730 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6731 msm_routing_put_audio_mixer),
6732 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6733 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6734 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6735 msm_routing_put_audio_mixer),
6736 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6737 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6738 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6739 msm_routing_put_audio_mixer),
6740 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6741 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6742 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6743 msm_routing_put_audio_mixer),
6744 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6746 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
6748 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6749 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6750 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6751 msm_routing_put_audio_mixer),
6752 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6753 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6754 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6755 msm_routing_put_audio_mixer),
6756 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6757 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6758 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6759 msm_routing_put_audio_mixer),
6760 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6761 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6762 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6763 msm_routing_put_audio_mixer),
6764 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6765 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6766 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6767 msm_routing_put_audio_mixer),
6768 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6769 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6770 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6771 msm_routing_put_audio_mixer),
6772 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6774 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
6776 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6778 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
6780
6781};
6782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306783static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006784 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6785 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306786 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006788 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006792 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306794 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006796 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6797 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306798 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006800 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6801 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306802 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006804 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6805 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306806 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006808 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6809 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306810 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006812 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6813 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306814 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006816 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6817 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306818 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006820 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6821 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306822 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006824 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6825 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306826 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006828 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6829 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306830 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006832 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6833 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306834 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006836 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6837 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306838 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006840 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6841 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306842 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006844 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6845 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306846 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006848 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6849 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306850 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6851 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306852 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6853 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6854 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006856 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6857 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306858 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006860 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6861 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306862 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6863 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306864 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6866 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306868};
6869
6870static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006871 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6872 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306873 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6874 msm_routing_put_audio_mixer),
6875};
6876
6877static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006878 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6879 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306880 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006882 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6883 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306884 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006886 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6887 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306888 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006890 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6891 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306892 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006894 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6895 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306896 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006898 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6899 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306900 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006902 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006906 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006910 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006914 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6915 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306916 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006918 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6919 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306920 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006922 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006926 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6927 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306928 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006930 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6931 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306932 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006934 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6935 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306936 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006938 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6939 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306940 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006942 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6943 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306944 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006950 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306952 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306954 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6955 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6956 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006958 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6959 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306960 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306966 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6968 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970};
6971
6972static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006973 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6974 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306975 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006977 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6978 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306979 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006981 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6982 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306983 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006985 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6986 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006989 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006993 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306995 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006997 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007001 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7002 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007005 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7006 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307007 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007009 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7010 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307011 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007033 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307035 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007045 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307047 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307049 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_PRI_MI2S_RX,
7051 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007053 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307055 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007057 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307059 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307061 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7062 MSM_BACKEND_DAI_PRI_MI2S_RX,
7063 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7064 msm_routing_put_audio_mixer),
Jhansi Konathala8cf03d42019-08-20 19:27:39 +05307065 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_PRI_MI2S_RX,
7067 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307069};
7070
7071static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007072 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7073 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307074 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007076 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7077 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307078 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007096 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7097 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307098 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007100 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7101 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307102 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007128 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307130 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007132 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
7136};
7137
7138static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007139 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7140 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307141 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007143 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7144 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307145 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007147 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307149 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007151 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307153 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007155 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307157 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007159 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7160 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307161 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007163 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7164 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307165 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007167 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7168 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307169 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007171 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7172 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307173 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007175 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307177 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
7203};
7204
Ralf Herz29e07132019-07-26 15:15:21 +02007205static const struct snd_kcontrol_new pri_meta_mi2s_rx_mixer_controls[] = {
7206 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7207 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7208 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7209 msm_routing_put_audio_mixer),
7210 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7212 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
7214 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7216 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
7218 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7219 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7220 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7221 msm_routing_put_audio_mixer),
7222 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7223 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7224 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7225 msm_routing_put_audio_mixer),
7226 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7228 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
7230 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7232 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
7234 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7235 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7236 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7237 msm_routing_put_audio_mixer),
7238 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7239 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7240 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7241 msm_routing_put_audio_mixer),
7242 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7243 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7244 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7245 msm_routing_put_audio_mixer),
7246 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7247 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7248 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7249 msm_routing_put_audio_mixer),
7250 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7251 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7252 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7253 msm_routing_put_audio_mixer),
7254 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7255 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7256 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7257 msm_routing_put_audio_mixer),
7258 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7259 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7260 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7261 msm_routing_put_audio_mixer),
7262 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7263 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7264 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7265 msm_routing_put_audio_mixer),
7266 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7268 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
7270 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7272 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
7274 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7276 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
7278 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7280 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
7282 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7284 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
7286 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7288 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
7290 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7292 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
7294
7295};
7296
7297static const struct snd_kcontrol_new sec_meta_mi2s_rx_mixer_controls[] = {
7298 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7300 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
7302 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7304 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
7306 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7308 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
7310 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7312 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
7314 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7316 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
7318 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7320 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
7322 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7324 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
7326 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7328 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
7330 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7332 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
7334 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7336 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
7338 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7340 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
7342 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7344 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
7346 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7348 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
7350 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7352 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
7354 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7356 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
7358 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7359 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7360 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7361 msm_routing_put_audio_mixer),
7362 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7364 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
7366 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7368 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
7370 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7371 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7372 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7373 msm_routing_put_audio_mixer),
7374 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7375 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7376 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7377 msm_routing_put_audio_mixer),
7378 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7379 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7380 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7381 msm_routing_put_audio_mixer),
7382 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7383 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7384 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7385 msm_routing_put_audio_mixer),
7386};
7387
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307388static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007461 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307463 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307465 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7466 MSM_BACKEND_DAI_HDMI_RX,
7467 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007469 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307471 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307477 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_HDMI_RX,
7479 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307481};
7482
7483static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007532 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307534 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007536 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307538 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007540 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307542 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007544 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307546 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307548 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7550 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307552};
7553
Karthikeyan Mani57550082018-05-03 18:43:58 -07007554static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7555 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7557 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
7559 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7561 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
7563 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7565 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
7567 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7569 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
7571 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7573 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
7575 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7577 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
7579 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7581 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
7583 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7585 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
7587 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7589 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
7591 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7593 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
7595 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7597 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
7599 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7601 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
7603 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7605 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
7607 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7609 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
7611 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7613 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
7615 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7617 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307619 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7621 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007623};
7624
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307625 /* incall music delivery mixer */
7626static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007627 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307629 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007631 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307633 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
Anurag Chouhanb2a024a2019-10-09 11:39:08 +05307635 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
7637 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007639 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307641 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007643 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307645 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
7647};
7648
7649static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007650 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307652 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007654 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307656 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
7666};
7667
7668static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
7685};
7686
7687static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007688 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7689 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307690 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007692 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7693 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307694 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007696 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007736 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007740 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007744 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007748 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307752 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7754 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307756};
7757
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307758static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7759 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7761 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
7763 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7765 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
7767 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7769 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
7771 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7773 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
7775 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7777 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
7779 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7781 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
7783 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7785 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
7787 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7789 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
7791 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7793 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
7795 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7797 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
7799 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7801 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
7803 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7805 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
7807 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7809 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
7811 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7813 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
7815 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7817 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
7819 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7821 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307823 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7825 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307827};
7828
7829static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7830 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7831 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7832 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7833 msm_routing_put_audio_mixer),
7834 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7836 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
7838 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7840 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
7842 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7844 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
7846 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7848 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
7850 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7852 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
7854 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7856 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
7858 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7860 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
7862 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7864 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
7866 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7868 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
7870 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7872 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
7874 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7876 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
7878 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7880 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
7882 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7884 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
7886 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7888 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
7890 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7892 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307894 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7896 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307898};
7899
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307900static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7901 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7903 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7904 msm_routing_put_audio_mixer),
7905 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7907 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
7909 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7911 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
7913 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7915 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
7917 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7919 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
7921 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7923 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
7925 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7927 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
7929 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7931 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
7933 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7935 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
7937 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7939 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
7941 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7943 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
7945 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7947 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
7949 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7951 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
7953 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7955 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
7957 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7959 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
7961 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7963 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307965 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7967 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307969};
7970
7971static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7972 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7973 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7974 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7975 msm_routing_put_audio_mixer),
7976 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7978 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
7980 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7982 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
7984 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7986 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
7988 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7990 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
7992 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7994 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
7996 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7998 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
8000 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8002 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
8004 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8006 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
8008 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8010 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
8012 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8014 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
8016 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8018 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
8020 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8022 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
8024 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8026 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
8028 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8030 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
8032 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8034 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308036 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8038 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308040};
8041
8042static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
8043 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8044 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8045 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8046 msm_routing_put_audio_mixer),
8047 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8049 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
8051 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8053 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
8055 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8057 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
8059 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8061 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
8063 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8065 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
8067 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8069 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
8071 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8073 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
8075 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8077 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
8079 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8081 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
8083 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8085 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
8087 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8089 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
8091 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8093 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
8095 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8097 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
8099 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8101 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
8103 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8105 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308107 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8109 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308111};
8112
8113static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
8114 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8115 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8116 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8117 msm_routing_put_audio_mixer),
8118 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8120 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
8122 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8124 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
8126 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8128 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
8130 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8132 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
8134 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8136 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
8138 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8140 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
8142 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8144 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
8146 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8148 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
8150 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8152 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
8154 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8156 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
8158 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8160 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
8162 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8164 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
8166 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8168 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
8170 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8172 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
8174 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8176 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308178 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8180 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308182};
8183
8184static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
8185 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
8189 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8191 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
8193 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8195 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
8197 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8199 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
8201 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8203 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
8205 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8207 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
8209 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8211 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
8213 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8215 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
8217 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8219 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
8221 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8223 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
8225 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8227 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
8229 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8231 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
8233 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8235 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
8237 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8239 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
8241 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8243 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
8245 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8247 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308249 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8251 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308253};
8254
8255static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8256 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8258 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
8260 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8262 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
8264 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8266 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
8268 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8270 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
8272 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8274 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
8276 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8278 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
8280 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8282 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
8284 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8286 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
8288 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8290 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
8292 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8294 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
8296 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8298 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
8300 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8302 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
8304 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8306 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
8308 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8310 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
8312 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8314 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
8316 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8318 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308320 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8322 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308324};
8325
8326static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8327 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8329 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
8331 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8333 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
8335 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8337 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
8339 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8341 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
8343 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8345 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
8347 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8349 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
8351 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8353 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
8355 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8357 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
8359 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8361 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
8363 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8365 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
8367 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8369 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
8371 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8373 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
8375 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8377 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
8379 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8381 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
8383 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8385 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
8387 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8389 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308391 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8393 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308395};
8396
8397static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8398 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8400 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
8402 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8404 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
8406 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8408 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
8410 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
8414 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8416 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
8418 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8420 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
8422 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8424 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
8426 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8428 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
8430 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8432 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
8434 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8436 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
8438 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8440 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
8442 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8444 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
8446 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8448 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
8450 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8452 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
8454 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8456 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
8458 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8460 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308462 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8464 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308466};
8467
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308533 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8535 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308537};
8538
Surendar Karka3ef3d812018-09-28 18:52:35 +05308539static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8540 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8542 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
8544 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8546 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
8548 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8550 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
8552 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8554 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
8556 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8558 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
8560 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8562 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
8564 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8566 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
8568 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8570 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
8572 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8574 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
8576 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8578 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
8580 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8582 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
8584 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8586 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
8588 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8590 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
8592 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8594 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
8596 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8598 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
8600 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8602 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
8604 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8606 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
8608};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008610 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8611 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308612 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008614 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008622 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008626 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008630 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008634 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308636 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008638 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8639 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008642 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008646 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8647 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308648 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008650 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8651 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308652 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008654 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8655 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308656 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008658 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8659 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308660 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008662 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8663 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308664 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008666 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8667 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308668 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008670 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8671 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8673 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308674 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_USB_RX,
8676 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308678};
8679
8680static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008681 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8682 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308683 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008685 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008689 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008693 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008697 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008701 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008705 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308707 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008709 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8710 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008713 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308715 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008717 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308719 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008721 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008725 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308727 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008729 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8730 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308731 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008733 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8734 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308735 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008737 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8738 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308739 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008741 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008745 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008753 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308757 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8759 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008761 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308763 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008765 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308767 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308769 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8770 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8771 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8772 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308773};
8774
8775static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008776 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8777 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308778 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008780 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8781 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008784 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8785 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308786 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008788 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8789 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008792 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8793 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308794 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008796 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8797 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308798 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008800 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8801 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308802 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008804 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8805 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308806 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008808 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8809 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308810 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008812 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8813 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008816 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008820 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008824 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008828 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008832 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008836 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308838 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308840 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8842 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308844};
8845
8846static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008847 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8848 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308849 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008851 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8852 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308853 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008855 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8856 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308857 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008859 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8860 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308861 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008863 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8864 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308865 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008867 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8868 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308869 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008871 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8872 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308873 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008875 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8876 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308877 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008879 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8880 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308881 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008891 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308893 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008895 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8896 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308897 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008907 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308909 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008911 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308913 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308923 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_INT_FM_RX,
8925 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308935 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_INT_FM_RX,
8937 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308939};
8940
8941static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008942 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8943 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308944 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008946 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008950 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8951 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308952 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008954 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8955 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308956 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008958 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008966 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308968 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008970 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8971 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308972 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008986 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308988 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309018 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_AFE_PCM_RX,
9020 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309030 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_AFE_PCM_RX,
9032 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309034};
9035
9036static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009037 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009041 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009045 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009053 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009057 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009061 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009113 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_AUXPCM_RX,
9115 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309117 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_AUXPCM_RX,
9119 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309129 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_AUXPCM_RX,
9131 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309133};
9134
9135static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009136 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009168 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009172 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009212 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9214 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309216 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9218 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009220 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009224 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309228 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9230 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309232};
9233
9234static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309299 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9301 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309303};
9304
9305static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309370 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9372 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309374};
9375
Rohit Kumara5077932017-09-10 22:05:05 +05309376static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009425 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309427 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009429 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309431 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009437 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309439 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309441 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9443 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309445};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009446
9447static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9448 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9450 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
9452 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9454 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
9456 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9458 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
9460 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9462 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
9464 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9466 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
9468 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9470 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
9472 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9474 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
9476 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9478 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
9480 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9482 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
9484 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9486 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
9488 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9490 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
9492 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9494 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
9496 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9498 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
9500 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9502 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
9504 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9506 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
9508 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9510 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
9512 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9514 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
9516};
9517
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009555 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309557 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009583 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9585 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009587 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9589 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309591 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9593 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595};
9596
9597static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009598 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9599 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309600 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009614 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9615 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309616 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009618 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309620 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009622 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9623 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309624 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009626 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309628 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009630 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9631 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309632 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009634 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9635 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309636 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009638 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9639 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309640 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009642 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9643 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309644 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009646 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9647 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309648 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009650 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9651 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309652 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009654 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9655 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309656 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009658 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9659 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309660 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9661 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009662 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9663 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9664 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9665 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009666 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9668 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309670 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9672 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309674};
9675
9676static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009713 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009717 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309719 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009721 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309723 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009725 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009729 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009733 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009737 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009741 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9743 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009745 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9747 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309749 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9751 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309753};
9754
9755static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009756 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309758 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009760 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009764 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309766 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009768 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009772 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309774 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009792 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309794 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009796 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009820 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9822 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009824 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9826 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309828 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9830 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309832};
9833
9834static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009835 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309837 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009839 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309841 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009843 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309845 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009847 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309849 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009851 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309853 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009855 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009859 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009863 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009867 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309869 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009871 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309873 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009887 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309889 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009891 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309893 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009895 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309897 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309899 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_PRI_TDM_TX_0,
9901 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309903};
9904
9905static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009906 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9907 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309908 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009910 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309912 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009914 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309916 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009918 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309920 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009922 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309924 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009926 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309928 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009930 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009934 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309936 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009938 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309940 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009942 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309944 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009946 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309948 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009950 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309952 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009954 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309956 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009962 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309964 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009966 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009970 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9972 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009974 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9975 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9976 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9977 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +05309978 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
9979 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9980 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
9981 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309982};
9983
9984static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009985 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010025 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010027 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010029 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010031 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010033 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010037 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010039 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010041 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010043 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010045 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010047 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010049 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10051 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010053 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10055 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010057 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10059 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010061};
10062
10063static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010064 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010066 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010068 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010070 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010072 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010076 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010084 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010088 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010092 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010094 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010096 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010098 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010100 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010102 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010104 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010106 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010108 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010110 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010112 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010114 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010116 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010118 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010120 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010122 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010124 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010126 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010128 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10130 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010132 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10134 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010136 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10138 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010140};
10141
10142static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010143 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010171 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010175 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010177 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010179 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010183 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010185 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010187 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010189 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010191 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010193 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010195 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010197 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010199 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010201 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010203 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010205 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010207 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10209 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010211 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10213 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010215 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10217 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010219};
10220
10221static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010222 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010224 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010226 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010228 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010230 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010234 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010236 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010238 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010240 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010242 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010244 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010246 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010248 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010250 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010252 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010254 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010256 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010258 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010260 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010262 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010264 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010266 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010270 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010272 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010274 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010276 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010278 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010280 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010282 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010284 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010286 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_SEC_TDM_TX_0,
10288 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010290};
10291
10292static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010293 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010295 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010297 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010299 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010301 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010303 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010305 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010307 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010309 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010311 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010313 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010315 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010317 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010319 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010321 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010323 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010325 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010327 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010329 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010331 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010333 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010335 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010337 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010339 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010341 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010343 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010345 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10346 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010347 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010349 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10350 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010351 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010353 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10354 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010355 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10356 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010357 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10359 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010361 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10363 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010365 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10367 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010369};
10370
10371static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010372 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10373 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010374 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010376 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10377 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010380 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10381 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010382 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010384 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010386 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010388 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010390 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010392 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010394 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010396 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010398 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010400 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010402 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010404 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10405 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010406 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010408 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10409 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010410 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010412 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10413 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010414 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010416 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10417 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010418 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010420 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10421 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010422 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010424 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010426 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010428 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010430 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010432 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010434 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10435 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010436 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_TERT_TDM_TX_0,
10438 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10439 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010440};
10441
10442static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010443 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010445 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010447 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010449 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010451 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010453 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010455 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010457 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010459 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010461 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010471 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010473 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010475 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010483 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10484 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010485 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010487 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10488 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010491 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010495 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10496 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010497 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010499 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10500 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010501 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010503 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10504 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010505 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10506 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010507 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10508 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10509 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10510 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010511 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10512 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10513 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10514 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010515 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10516 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10517 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10518 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010519};
10520
10521static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010522 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010524 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010526 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010528 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010530 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010532 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010534 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010536 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010538 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010540 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010542 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010544 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010546 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10547 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010548 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010550 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10551 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010552 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010554 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10555 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010556 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010558 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10559 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010560 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010562 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10563 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010564 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010566 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10567 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010568 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010570 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10571 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010572 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010574 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10575 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010576 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010578 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10579 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010580 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010582 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10583 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010584 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10585 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010586 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10587 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10588 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10589 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010590 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10592 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10593 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010594 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10596 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10597 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010598};
10599
10600static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010601 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010603 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010607 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010609 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010611 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010613 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010615 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010621 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010623 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010625 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010627 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010629 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010631 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010633 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010635 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010637 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010639 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010641 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010643 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010645 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010647 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010649 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010651 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010653 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010655 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010657 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010659 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010661 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010663 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10664 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010665 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10667 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010669 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10671 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010673 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10675 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677};
10678
10679static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010680 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10681 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010682 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010684 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010686 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010688 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10689 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010690 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010692 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010694 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010696 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010698 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010700 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010702 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010708 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010710 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010712 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010714 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010716 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010718 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010720 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010722 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010724 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010726 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010728 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010732 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010736 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010738 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010740 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010742 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010744 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10746 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010748 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10750 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010752 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10754 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010756};
10757
10758static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010759 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010761 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010763 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010765 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010767 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010769 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010771 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010773 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010775 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010777 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010779 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010781 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010783 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010785 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010787 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010789 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010791 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010793 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010795 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010797 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010799 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010801 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010803 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010805 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010807 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010809 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010811 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010813 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010815 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010817 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010819 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010821 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010823 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010825 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010827 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10829 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010831 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10833 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010835 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10837 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10838 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010839};
10840
10841static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010844 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010846 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010866 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010868 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010870 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010872 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010874 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010876 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010878 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010884 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010888 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010890 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010892 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010894 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010896 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010898 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010900 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010902 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010904 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010906 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
10908 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010910};
10911
10912static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010913 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10914 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010915 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010917 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10918 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010919 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010921 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10922 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010923 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010925 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10926 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010927 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010929 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010931 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010933 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10934 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010935 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010937 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10938 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010939 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010941 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010943 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010945 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10946 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010947 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010949 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010951 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010953 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10954 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010955 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010957 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010959 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010961 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10962 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010963 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010965 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10966 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010967 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010969 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010971 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010973 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010975 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010977 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010979 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010981 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10983 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010985 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10986 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10987 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10988 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053010989 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
10990 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10991 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
10992 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010993};
10994
10995static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010996 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10997 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010998 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011000 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11001 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011004 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11005 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011006 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011008 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11009 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011010 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011012 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11013 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011014 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011016 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011018 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011020 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11021 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011022 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011024 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11025 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011026 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011028 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11029 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011032 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11033 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011034 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011036 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011038 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011040 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11041 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011042 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011044 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11045 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011046 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011048 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11049 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011050 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011052 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11053 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011054 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011056 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011058 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011060 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011062 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011064 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11065 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
11066 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11067 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011068 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11069 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
11070 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11071 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011072 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11073 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
11074 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11075 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011076};
11077
11078static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011079 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011081 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011083 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011085 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011111 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011113 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011115 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011117 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011119 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011121 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011123 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011125 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011127 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011129 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011131 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011133 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011137 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011139 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011141 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011143 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011145 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011147 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11149 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011151 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11153 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011155 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11157 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011159};
11160
Rohit Kumara5077932017-09-10 22:05:05 +053011161static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011162 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011166 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011168 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011174 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011178 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011182 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011186 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011188 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011192 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011194 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011196 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011198 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011204 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011206 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011208 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011210 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011212 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011214 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011216 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011218 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011220 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011222 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011226 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011228 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011230 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11232 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11233 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011234 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11236 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011238 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11240 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011242};
11243
11244static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011245 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11246 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011249 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11250 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011251 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011253 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011255 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011257 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011259 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011261 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011263 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011265 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11266 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011267 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011269 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11270 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011271 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011273 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011275 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011277 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011279 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011281 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011283 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011285 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011287 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011289 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011291 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011293 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011295 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011297 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011299 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011301 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011303 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011305 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011307 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11308 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011309 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11310 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11311 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011313};
11314
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011315static const struct snd_kcontrol_new quin_tdm_tx_1_mixer_controls[] = {
11316 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11317 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11318 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11319 msm_routing_put_audio_mixer),
11320 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11322 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11323 msm_routing_put_audio_mixer),
11324 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11325 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11326 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
11328 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11330 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
11332 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11334 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11335 msm_routing_put_audio_mixer),
11336 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11337 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11338 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11339 msm_routing_put_audio_mixer),
11340 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11341 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11342 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11343 msm_routing_put_audio_mixer),
11344 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11345 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11346 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11347 msm_routing_put_audio_mixer),
11348 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11349 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11350 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11351 msm_routing_put_audio_mixer),
11352 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11353 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11354 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11355 msm_routing_put_audio_mixer),
11356 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11358 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11359 msm_routing_put_audio_mixer),
11360 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11361 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11362 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
11364 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11366 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11367 msm_routing_put_audio_mixer),
11368 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11369 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11370 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11371 msm_routing_put_audio_mixer),
11372 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11373 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11374 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11375 msm_routing_put_audio_mixer),
11376 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11378 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
11380};
11381
Rohit Kumara5077932017-09-10 22:05:05 +053011382static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011383 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011385 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011387 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011389 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011391 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011393 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011395 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011397 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011399 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011401 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011403 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011405 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011407 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011409 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011411 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011413 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011415 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011419 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011421 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011423 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011425 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011427 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011429 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011431 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011433 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011435 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011437 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011439 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011441 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011443 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011445 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011447 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011449 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011451 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11453 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011455 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11457 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011459};
11460
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011461static const struct snd_kcontrol_new quin_tdm_tx_2_mixer_controls[] = {
11462 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11463 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11464 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11465 msm_routing_put_audio_mixer),
11466 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11468 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
11470 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11472 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11473 msm_routing_put_audio_mixer),
11474 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11476 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
11478 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11480 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11481 msm_routing_put_audio_mixer),
11482 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11484 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
11486 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11488 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
11490 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11492 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
11494 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11496 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
11498 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11500 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
11502 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11504 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
11506 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11508 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
11510 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11512 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
11514 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11516 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
11518 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11520 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
11522 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11524 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011526 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11528 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11529 msm_routing_put_audio_mixer),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011530};
11531
Rohit Kumara5077932017-09-10 22:05:05 +053011532static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011533 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011535 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011539 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011543 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011545 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011547 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011549 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011551 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011553 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011555 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011557 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011559 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011561 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011563 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011565 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011567 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011569 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011571 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011573 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011575 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011577 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011579 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011581 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011583 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011585 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011587 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011589 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11590 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011591 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011593 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011595 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011597 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11598 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011599 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11600 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011601 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11602 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11603 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011605 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11607 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11608 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011609 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11610 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11611 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11612 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011613};
11614
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011615static const struct snd_kcontrol_new quin_tdm_tx_3_mixer_controls[] = {
11616 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11617 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11618 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
11620 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11622 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
11624 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11626 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
11628 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11630 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11631 msm_routing_put_audio_mixer),
11632 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11634 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11635 msm_routing_put_audio_mixer),
11636 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11637 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11638 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11639 msm_routing_put_audio_mixer),
11640 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11642 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
11644 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11646 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
11648 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11650 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
11652 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11654 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
11656 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11657 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11658 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11659 msm_routing_put_audio_mixer),
11660 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11661 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11662 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11663 msm_routing_put_audio_mixer),
11664 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11665 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11666 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11667 msm_routing_put_audio_mixer),
11668 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11669 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11670 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11671 msm_routing_put_audio_mixer),
11672 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11673 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11674 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11675 msm_routing_put_audio_mixer),
11676 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11677 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11678 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11679 msm_routing_put_audio_mixer),
11680};
11681
Rohit Kumara5077932017-09-10 22:05:05 +053011682static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011683 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11684 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011685 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011687 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11688 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011689 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011691 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011693 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011695 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11696 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011697 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011699 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11700 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011701 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011703 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11704 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011705 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011707 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11708 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011709 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011711 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011713 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011715 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11716 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011717 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011719 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11720 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011721 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011723 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11724 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011725 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011727 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11728 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011729 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011731 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011733 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011735 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011737 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011739 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11740 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011741 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011743 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011745 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011747 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11748 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011749 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11750 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011751 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11752 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11753 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11754 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011755 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11757 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11758 msm_routing_put_audio_mixer),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053011759 SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
11760 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11761 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
11762 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011763};
11764
Karthikeyan Manic3700752019-03-11 18:33:53 -070011765static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11766 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11768 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
11770 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11772 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
11774 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11776 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11777 msm_routing_put_audio_mixer),
11778 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11781 msm_routing_put_audio_mixer),
11782 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11783 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11784 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11785 msm_routing_put_audio_mixer),
11786 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11788 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11789 msm_routing_put_audio_mixer),
11790 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11792 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
11794 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11796 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
11798 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11800 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
11802 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11805 msm_routing_put_audio_mixer),
11806 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11808 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11809 msm_routing_put_audio_mixer),
11810 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11811 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11812 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11813 msm_routing_put_audio_mixer),
11814 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11815 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11816 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11817 msm_routing_put_audio_mixer),
11818 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11820 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11821 msm_routing_put_audio_mixer),
11822 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11823 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11824 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11825 msm_routing_put_audio_mixer),
11826 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11827 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11828 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11829 msm_routing_put_audio_mixer),
11830 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11831 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11832 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11833 msm_routing_put_audio_mixer),
11834 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11836 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11837 msm_routing_put_audio_mixer),
11838};
11839
11840static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11841 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
11845 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11847 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
11849 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11851 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
11853 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11855 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
11857 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11859 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
11861 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11863 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
11865 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11867 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11868 msm_routing_put_audio_mixer),
11869 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11871 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11872 msm_routing_put_audio_mixer),
11873 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11875 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11879 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
11881 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11883 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
11885 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11887 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
11889 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11890 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11891 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11892 msm_routing_put_audio_mixer),
11893 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11894 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11895 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11896 msm_routing_put_audio_mixer),
11897 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11899 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11900 msm_routing_put_audio_mixer),
11901 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11902 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11903 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11904 msm_routing_put_audio_mixer),
11905};
11906
11907static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11908 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11910 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
11912 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11914 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
11916 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11918 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
11920 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11922 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
11924 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11926 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
11928 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11930 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
11932 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11934 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11938 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11942 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11946 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11950 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
11952 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11954 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11958 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
11960 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11962 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
11964 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11966 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
11968 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11970 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
11972 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11974 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
11976 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11978 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
11980};
11981
11982static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11983 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11984 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11985 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
11987 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11989 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11990 msm_routing_put_audio_mixer),
11991 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11993 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
11995 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11997 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
11999 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12001 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
12003 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12005 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
12007 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12009 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
12011 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
12015 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12017 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
12019 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12021 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
12023 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12025 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
12026 msm_routing_put_audio_mixer),
12027 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12029 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
12030 msm_routing_put_audio_mixer),
12031 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
12032 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12033 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
12034 msm_routing_put_audio_mixer),
12035 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12037 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
12038 msm_routing_put_audio_mixer),
12039 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
12040 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12041 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
12042 msm_routing_put_audio_mixer),
12043 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
12044 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12045 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12046 msm_routing_put_audio_mixer),
12047 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12049 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12050 msm_routing_put_audio_mixer),
12051 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
12052 MSM_BACKEND_DAI_SEN_TDM_RX_2,
12053 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12054 msm_routing_put_audio_mixer),
12055};
12056
12057static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
12058 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
12059 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12060 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12061 msm_routing_put_audio_mixer),
12062 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
12063 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12064 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12065 msm_routing_put_audio_mixer),
12066 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12068 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12069 msm_routing_put_audio_mixer),
12070 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12072 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12073 msm_routing_put_audio_mixer),
12074 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12076 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
12078 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12080 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12081 msm_routing_put_audio_mixer),
12082 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12084 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
12085 msm_routing_put_audio_mixer),
12086 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
12087 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12088 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
12089 msm_routing_put_audio_mixer),
12090 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
12091 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12092 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
12093 msm_routing_put_audio_mixer),
12094 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
12095 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12096 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
12097 msm_routing_put_audio_mixer),
12098 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12100 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
12102 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12104 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
12106 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12108 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
12109 msm_routing_put_audio_mixer),
12110 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12112 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
12113 msm_routing_put_audio_mixer),
12114 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12116 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
12117 msm_routing_put_audio_mixer),
12118 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12120 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12121 msm_routing_put_audio_mixer),
12122 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12124 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12125 msm_routing_put_audio_mixer),
12126 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12128 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12129 msm_routing_put_audio_mixer),
12130};
12131
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012132static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012133 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
12134 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
12142 MSM_BACKEND_DAI_PRI_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("QUAT_MI2S_TX", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_QUATERNARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
12150 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_INT3_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("SEC_MI2S_TX", SND_SOC_NOPM,
12162 MSM_BACKEND_DAI_SECONDARY_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("SLIM_0_TX", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_SLIMBUS_0_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),
Samyak Jain810e42a2019-01-07 17:53:34 +053012169 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12170 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012173 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12174 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012175 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12178 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12182 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12190 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12192 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012193 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
12194 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012197 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12198 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012199 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_FM_TX", SND_SOC_NOPM,
12202 MSM_BACKEND_DAI_INT_FM_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("AFE_PCM_TX", SND_SOC_NOPM,
12206 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
12210 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
12214 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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("SLIM_4_TX", SND_SOC_NOPM,
12218 MSM_BACKEND_DAI_SLIMBUS_4_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_6_TX", SND_SOC_NOPM,
12222 MSM_BACKEND_DAI_SLIMBUS_6_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("QUIN_MI2S_TX", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_QUINARY_MI2S_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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012229 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012233 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012235 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_1", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
12250 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
12254 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
12258 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
12262 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
12266 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
12270 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
12274 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
12278 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
12282 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
12286 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
12290 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
12294 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
12298 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012313 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12315 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12316 msm_routing_put_audio_mixer),
12317 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
12326 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12327 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012329 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012331 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_8_TX", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX", SND_SOC_NOPM,
12338 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012341 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12342 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12343 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12344 msm_routing_put_audio_mixer),
12345 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12346 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
12350 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12352 msm_routing_put_audio_mixer),
12353 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
12358 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12359 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12360 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012361 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12363 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12364 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012365 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12367 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12368 msm_routing_put_audio_mixer),
12369 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12388 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012389 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12391 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12392 msm_routing_put_audio_mixer),
12393 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12395 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12396 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012397 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12399 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12400 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012401 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12403 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12404 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012405};
12406
12407static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012408 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12409 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012410 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012412 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12413 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
12421 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
12429 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_QUATERNARY_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("SLIM_0_TX", SND_SOC_NOPM,
12441 MSM_BACKEND_DAI_SLIMBUS_0_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_6_TX", SND_SOC_NOPM,
12445 MSM_BACKEND_DAI_SLIMBUS_6_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_1_TX", SND_SOC_NOPM,
12449 MSM_BACKEND_DAI_SLIMBUS_1_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("QUIN_MI2S_TX", SND_SOC_NOPM,
12453 MSM_BACKEND_DAI_QUINARY_MI2S_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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012456 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012460 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12461 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012462 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_1", SND_SOC_NOPM,
12465 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
12469 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
12473 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
12489 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
12493 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
12497 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
12501 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
12517 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
12529 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
12537 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012540 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12542 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12543 msm_routing_put_audio_mixer),
12544 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012556 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12557 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012558 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("USB_AUDIO_TX", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012564 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12566 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12567 msm_routing_put_audio_mixer),
12568 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12574 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12575 msm_routing_put_audio_mixer),
12576 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12582 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12583 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012584 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12586 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12587 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012588 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12589 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12591 msm_routing_put_audio_mixer),
12592 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
12597 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
12601 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12610 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12611 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012612 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12615 msm_routing_put_audio_mixer),
12616 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12618 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12619 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012620 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12622 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12623 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012624 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12626 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12627 msm_routing_put_audio_mixer),
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053012628 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12630 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12631 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012632};
12633
12634static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012635 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12638 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012639 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012643 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12644 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012645 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("MI2S_TX", SND_SOC_NOPM,
12648 MSM_BACKEND_DAI_MI2S_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("AFE_PCM_TX", SND_SOC_NOPM,
12652 MSM_BACKEND_DAI_AFE_PCM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12656 MSM_BACKEND_DAI_INT_BT_SCO_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("AUX_PCM_TX", SND_SOC_NOPM,
12660 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12664 MSM_BACKEND_DAI_SEC_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("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12668 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12672 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12676 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12678 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012679 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12680 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12681 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012683 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012685 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("TERT_MI2S_TX", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_INT3_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("PRI_TDM_TX_0", SND_SOC_NOPM,
12700 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
12704 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
12712 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
12720 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
12724 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
12728 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
12740 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
12744 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
12748 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
12752 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
12756 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
12760 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
12768 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012779 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12780 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12782 msm_routing_put_audio_mixer),
12783 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
12788 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
12792 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12793 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12794 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012795 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12797 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12798 msm_routing_put_audio_mixer),
12799 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12800 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12805 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12806 msm_routing_put_audio_mixer),
12807 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12814 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012815 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12816 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12817 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12818 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012819 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12821 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12822 msm_routing_put_audio_mixer),
12823 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
12828 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
12832 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
12836 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
12840 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12841 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12842 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012843 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12845 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12846 msm_routing_put_audio_mixer),
12847 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12849 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12850 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012851 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12853 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12854 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012855};
12856
12857static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012858 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12859 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12861 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012862 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12863 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12864 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012866 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12867 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012868 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("INTERNAL_FM_TX", SND_SOC_NOPM,
12871 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
12875 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
12879 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
12883 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
12891 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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("PRI_TDM_TX_0", SND_SOC_NOPM,
12895 MSM_BACKEND_DAI_PRI_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_1", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
12903 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
12919 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_1", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
12931 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
12935 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
12939 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
12943 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
12947 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
12951 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
12955 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
12959 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
12963 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012970 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12971 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12972 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12973 msm_routing_put_audio_mixer),
12974 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
12979 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
12983 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12984 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012986 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988 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("TERT_MI2S_TX", SND_SOC_NOPM,
12991 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
12995 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
12999 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
13003 MSM_BACKEND_DAI_QUATERNARY_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("USB_AUDIO_TX", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013010 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13013 msm_routing_put_audio_mixer),
13014 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13019 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13020 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13021 msm_routing_put_audio_mixer),
13022 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13023 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
13027 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13028 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13029 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013030 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13031 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13033 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013034 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13036 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13037 msm_routing_put_audio_mixer),
13038 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13039 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13043 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
13047 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
13051 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13056 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13057 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013058 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13059 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13060 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13061 msm_routing_put_audio_mixer),
13062 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13063 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13064 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13065 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013066 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13068 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
13069 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013070};
13071
13072static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013073 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13074 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13076 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013077 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13079 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013081 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13082 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013083 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("MI2S_TX", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_MI2S_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("AFE_PCM_TX", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_AFE_PCM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13094 MSM_BACKEND_DAI_INT_BT_SCO_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
13098 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13102 MSM_BACKEND_DAI_SEC_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("TERT_AUX_PCM_TX", SND_SOC_NOPM,
13106 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13110 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
13114 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013115 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13116 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013117 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
13118 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
13119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013121 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13122 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013123 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("TERT_MI2S_TX", SND_SOC_NOPM,
13126 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
13130 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
13134 MSM_BACKEND_DAI_INT3_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("PRI_TDM_TX_0", SND_SOC_NOPM,
13138 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
13142 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
13146 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
13150 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
13162 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
13202 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013217 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13219 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13220 msm_routing_put_audio_mixer),
13221 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 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("QUAT_MI2S_TX", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_QUATERNARY_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("SLIM_7_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013253 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13255 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13256 msm_routing_put_audio_mixer),
13257 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13263 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13264 msm_routing_put_audio_mixer),
13265 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13271 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13272 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013273 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13276 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013277 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13278 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13279 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13280 msm_routing_put_audio_mixer),
13281 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13282 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
13290 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
13298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13299 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13300 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013301 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13303 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13304 msm_routing_put_audio_mixer),
13305 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13307 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13308 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013309 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13311 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13312 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013313 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13315 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13316 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013317};
13318
13319static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013320 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013322 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013324 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_SLIMBUS_0_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),
Samyak Jain810e42a2019-01-07 17:53:34 +053013328 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13330 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013332 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13333 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013334 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("SEC_MI2S_TX", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
13341 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
13345 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
13353 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
13357 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013358 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13359 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013360 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13361 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13362 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013364 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013366 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13373 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13377 MSM_BACKEND_DAI_QUAT_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("PRI_TDM_TX_0", SND_SOC_NOPM,
13381 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
13385 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
13393 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
13397 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
13401 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
13405 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
13425 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
13441 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013460 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13463 msm_routing_put_audio_mixer),
13464 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13474 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013476 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013478 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13479 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013480 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13482 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13483 msm_routing_put_audio_mixer),
13484 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13489 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13490 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13491 msm_routing_put_audio_mixer),
13492 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13493 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
13497 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13498 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13499 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013500 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13502 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13503 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013504 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13506 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13507 msm_routing_put_audio_mixer),
13508 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13509 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13513 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
13517 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
13521 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
13525 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13526 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13527 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013528 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13529 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13530 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13531 msm_routing_put_audio_mixer),
13532 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13533 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13534 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13535 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013536 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13537 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13539 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013540};
13541
13542static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013543 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013545 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13546 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013547 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13549 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013551 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013553 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("SEC_MI2S_TX", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_QUATERNARY_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("INTERNAL_FM_TX", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
13580 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
13584 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
13588 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
13592 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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("SLIM_6_TX", SND_SOC_NOPM,
13596 MSM_BACKEND_DAI_SLIMBUS_6_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("PRI_TDM_TX_0", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
13604 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
13608 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
13616 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
13624 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
13628 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
13636 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
13644 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
13648 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
13656 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
13660 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013679 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13682 msm_routing_put_audio_mixer),
13683 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13693 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013695 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13696 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013697 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("USB_AUDIO_TX", SND_SOC_NOPM,
13700 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013703 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13706 msm_routing_put_audio_mixer),
13707 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13712 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13713 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13714 msm_routing_put_audio_mixer),
13715 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13721 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13722 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013723 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13725 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13726 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013727 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13729 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13730 msm_routing_put_audio_mixer),
13731 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13732 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13736 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
13740 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
13744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13749 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13750 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013751 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13753 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13754 msm_routing_put_audio_mixer),
13755 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13757 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13758 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013759 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13761 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13762 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013763 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13765 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13766 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013767};
13768
Asish Bhattacharya34504582017-08-08 12:55:01 +053013769static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013770 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013772 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13773 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013774 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13776 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013778 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013780 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("SEC_MI2S_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_TERTIARY_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("INT2_MI2S_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_QUATERNARY_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("INTERNAL_FM_TX", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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("SLIM_6_TX", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_SLIMBUS_6_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("PRI_TDM_TX_0", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
13879 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("SLIM_7_TX", SND_SOC_NOPM,
13891 MSM_BACKEND_DAI_SLIMBUS_7_TX,
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("USB_AUDIO_TX", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_USB_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("MI2S_TX", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_MI2S_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("AUX_PCM_TX", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13907 MSM_BACKEND_DAI_SEC_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("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13911 MSM_BACKEND_DAI_QUAT_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013914 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13915 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13916 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13917 msm_routing_put_audio_mixer),
13918 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13919 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13923 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13924 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13925 msm_routing_put_audio_mixer),
13926 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13927 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
13931 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13933 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013934 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13936 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13937 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013938 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13939 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13940 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13941 msm_routing_get_audio_mixer,
13942 msm_routing_put_audio_mixer),
13943 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13945 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13946 msm_routing_get_audio_mixer,
13947 msm_routing_put_audio_mixer),
13948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13950 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13951 msm_routing_get_audio_mixer,
13952 msm_routing_put_audio_mixer),
13953 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13954 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13955 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13956 msm_routing_get_audio_mixer,
13957 msm_routing_put_audio_mixer),
13958 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13961 msm_routing_get_audio_mixer,
13962 msm_routing_put_audio_mixer),
13963 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13965 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13966 msm_routing_get_audio_mixer,
13967 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013968 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13969 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13970 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13971 msm_routing_put_audio_mixer),
13972 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13974 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13975 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013976 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13978 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13979 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013980 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13982 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13983 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013984};
13985
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013986static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013987 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013989 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13990 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013991 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13993 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013995 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13996 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013997 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("INTERNAL_FM_TX", SND_SOC_NOPM,
14000 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
14004 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14008 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
14012 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
14016 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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("SLIM_6_TX", SND_SOC_NOPM,
14020 MSM_BACKEND_DAI_SLIMBUS_6_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("TERT_TDM_TX_0", SND_SOC_NOPM,
14024 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14032 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014071 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14072 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14073 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14074 msm_routing_put_audio_mixer),
14075 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14085 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14086 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014087 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14089 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14090 msm_routing_put_audio_mixer),
14091 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14092 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14097 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14098 msm_routing_put_audio_mixer),
14099 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14100 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14104 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14105 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14106 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014107 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14109 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14110 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014111 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14113 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14114 msm_routing_put_audio_mixer),
14115 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14133 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14134 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014135 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14137 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14138 msm_routing_put_audio_mixer),
14139 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14140 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14141 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14142 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014143 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14145 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14146 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014147};
14148
Laxminath Kasam38070be2017-08-17 18:21:59 +053014149static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014152 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14153 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014154 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14155 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014158 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014160 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("INTERNAL_FM_TX", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
14167 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14171 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
14175 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
14179 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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("SLIM_6_TX", SND_SOC_NOPM,
14183 MSM_BACKEND_DAI_SLIMBUS_6_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_7_TX", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070014188 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("TERT_TDM_TX_0", SND_SOC_NOPM,
14191 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014192 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_1", SND_SOC_NOPM,
14195 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14199 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14203 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("USB_AUDIO_TX", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_USB_TX,
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("MI2S_TX", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014228 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("AUX_PCM_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_SEC_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("TERT_AUX_PCM_TX", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_QUAT_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("TERT_MI2S_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INT2_MI2S_TX", SND_SOC_NOPM,
14251 MSM_BACKEND_DAI_INT2_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("INT3_MI2S_TX", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014258 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14260 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14261 msm_routing_put_audio_mixer),
14262 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14268 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14269 msm_routing_put_audio_mixer),
14270 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14271 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14276 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14277 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014278 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14280 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14281 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014282 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14283 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14284 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14285 msm_routing_get_audio_mixer,
14286 msm_routing_put_audio_mixer),
14287 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14289 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14290 msm_routing_get_audio_mixer,
14291 msm_routing_put_audio_mixer),
14292 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14293 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14294 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14295 msm_routing_get_audio_mixer,
14296 msm_routing_put_audio_mixer),
14297 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14299 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14300 msm_routing_get_audio_mixer,
14301 msm_routing_put_audio_mixer),
14302 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14304 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14305 msm_routing_get_audio_mixer,
14306 msm_routing_put_audio_mixer),
14307 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14308 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14309 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14310 msm_routing_get_audio_mixer,
14311 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014312 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14313 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14314 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14315 msm_routing_put_audio_mixer),
14316 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14318 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14319 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014320 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14321 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14322 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14323 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014324 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14326 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14327 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053014328};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014329static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014330 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14331 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014332 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14333 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014334 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14335 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14336 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014338 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14339 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014340 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("INT3_MI2S_TX", SND_SOC_NOPM,
14343 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +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("INTERNAL_FM_TX", SND_SOC_NOPM,
14347 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_BT_SCO_TX", SND_SOC_NOPM,
14351 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14355 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
14359 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
14363 MSM_BACKEND_DAI_INCALL_RECORD_TX,
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 Wang5c4bab72018-04-25 10:40:01 +080014366 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14367 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14368 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14369 msm_routing_put_audio_mixer),
14370 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14371 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14372 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14373 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014374 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14376 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14377 msm_routing_put_audio_mixer),
14378 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14384 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14385 msm_routing_put_audio_mixer),
14386 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14387 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14392 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14393 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014394 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14396 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14397 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014398 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14400 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14401 msm_routing_get_audio_mixer,
14402 msm_routing_put_audio_mixer),
14403 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14404 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14405 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14406 msm_routing_get_audio_mixer,
14407 msm_routing_put_audio_mixer),
14408 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14409 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14410 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14411 msm_routing_get_audio_mixer,
14412 msm_routing_put_audio_mixer),
14413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14415 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14416 msm_routing_get_audio_mixer,
14417 msm_routing_put_audio_mixer),
14418 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14419 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14420 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14421 msm_routing_get_audio_mixer,
14422 msm_routing_put_audio_mixer),
14423 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14424 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14425 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14426 msm_routing_get_audio_mixer,
14427 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014428 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14429 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14430 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14431 msm_routing_put_audio_mixer),
14432 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14433 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14434 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14435 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014436 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14437 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14438 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14439 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014440};
14441
14442static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014443 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14444 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014445 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14446 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014447 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14449 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014451 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14452 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014453 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014455 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014457 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14458 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014459 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14461 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14462 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014463 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14464 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14465 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014467 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014469 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("INTERNAL_FM_TX", SND_SOC_NOPM,
14472 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014489 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14490 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014491 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14493 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14494 msm_routing_put_audio_mixer),
14495 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14501 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14502 msm_routing_put_audio_mixer),
14503 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14509 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14510 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014511 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14513 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14514 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014515 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14517 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14518 msm_routing_get_audio_mixer,
14519 msm_routing_put_audio_mixer),
14520 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14522 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14523 msm_routing_get_audio_mixer,
14524 msm_routing_put_audio_mixer),
14525 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14526 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14527 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14528 msm_routing_get_audio_mixer,
14529 msm_routing_put_audio_mixer),
14530 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14532 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14533 msm_routing_get_audio_mixer,
14534 msm_routing_put_audio_mixer),
14535 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14537 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14538 msm_routing_get_audio_mixer,
14539 msm_routing_put_audio_mixer),
14540 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14542 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14543 msm_routing_get_audio_mixer,
14544 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014545 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14547 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14548 msm_routing_put_audio_mixer),
14549 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14550 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14551 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14552 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014553 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14554 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14555 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14556 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014557};
14558
14559static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014562 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14563 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014564 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14565 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14566 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014568 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014570 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +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("INTERNAL_FM_TX", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014578 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014594 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14595 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014596 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14597 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14598 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14599 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014600 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14602 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14603 msm_routing_put_audio_mixer),
14604 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14605 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14606 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14607 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014608 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14610 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14611 msm_routing_put_audio_mixer),
14612 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14613 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14618 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14619 msm_routing_put_audio_mixer),
14620 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14625 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14626 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14627 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014628 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14630 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14631 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014632 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14633 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14634 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14635 msm_routing_get_audio_mixer,
14636 msm_routing_put_audio_mixer),
14637 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14638 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14639 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14640 msm_routing_get_audio_mixer,
14641 msm_routing_put_audio_mixer),
14642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14644 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14645 msm_routing_get_audio_mixer,
14646 msm_routing_put_audio_mixer),
14647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14649 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14650 msm_routing_get_audio_mixer,
14651 msm_routing_put_audio_mixer),
14652 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14653 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14654 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14655 msm_routing_get_audio_mixer,
14656 msm_routing_put_audio_mixer),
14657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14659 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14660 msm_routing_get_audio_mixer,
14661 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014662 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14663 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14664 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14665 msm_routing_put_audio_mixer),
14666 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14668 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14669 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014670 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14672 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14673 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014674};
14675
14676static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014677 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14678 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014679 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
14686 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14690 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014695 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14696 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014697 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14699 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014703 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_1", SND_SOC_NOPM,
14706 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_PRI_TDM_TX_3,
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("SEC_TDM_TX_0", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
14726 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_SEC_TDM_TX_3,
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("TERT_TDM_TX_0", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14746 MSM_BACKEND_DAI_TERT_TDM_TX_3,
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("QUAT_TDM_TX_0", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
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("QUIN_TDM_TX_0", SND_SOC_NOPM,
14766 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +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_1", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14778 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
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),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014781 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14783 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14784 msm_routing_put_audio_mixer),
14785 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14794 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14795 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14796 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014797 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14798 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14799 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14800 msm_routing_put_audio_mixer),
14801 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14807 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14808 msm_routing_put_audio_mixer),
14809 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14815 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14816 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014817 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14819 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14820 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014821 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14823 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14824 msm_routing_put_audio_mixer),
14825 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
14834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14843 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14844 msm_routing_put_audio_mixer),
14845 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14847 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14848 msm_routing_put_audio_mixer),
14849 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14851 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14852 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014853 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14855 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14856 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014857};
14858
14859static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14860 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14861 MSM_BACKEND_DAI_AUXPCM_TX,
14862 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14863 msm_routing_put_audio_mixer),
14864 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14866 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14867 msm_routing_put_audio_mixer),
14868 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14869 MSM_BACKEND_DAI_PRI_TDM_TX_0,
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_1", SND_SOC_NOPM,
14873 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
14881 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14882 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14883 msm_routing_put_audio_mixer),
14884 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
14889 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
14897 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14898 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14899 msm_routing_put_audio_mixer),
14900 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14901 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14905 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14909 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14914 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14915 msm_routing_put_audio_mixer),
14916 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14917 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
14921 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
14925 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14930 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14931 msm_routing_put_audio_mixer),
14932 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
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_1", SND_SOC_NOPM,
14937 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14941 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14945 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14946 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14947 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014948 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14950 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14951 msm_routing_put_audio_mixer),
14952 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_SEN_TDM_TX_1,
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_2", SND_SOC_NOPM,
14957 MSM_BACKEND_DAI_SEN_TDM_TX_2,
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_3", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14962 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14963 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014964 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014965 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14966 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014967 msm_routing_put_audio_mixer),
14968 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014969 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014973 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
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("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014977 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014981 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
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),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014984 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14986 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14987 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014988 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014989 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014997 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
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_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
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_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15010 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15011 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015012 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15013 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053015014 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020015015 msm_routing_put_audio_mixer),
15016 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15017 MSM_BACKEND_DAI_SEC_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),
Surendar Karkad47fda42018-05-20 19:21:10 +053015020 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15022 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
15023 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015024};
15025
Derek Chenb097d922019-07-31 17:28:02 -070015026static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
15027 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15028 MSM_BACKEND_DAI_PRI_TDM_TX_0,
15029 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15030 msm_routing_put_audio_mixer),
15031 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_PRI_TDM_TX_3,
15041 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15042 msm_routing_put_audio_mixer),
15043 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_SEC_TDM_TX_3,
15057 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15058 msm_routing_put_audio_mixer),
15059 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15060 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
15068 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_TERT_TDM_TX_3,
15073 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15074 msm_routing_put_audio_mixer),
15075 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
15080 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
15089 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15090 msm_routing_put_audio_mixer),
15091 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15092 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
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_1", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
15105 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
15106 msm_routing_put_audio_mixer),
15107};
15108
Viraja Kommarajud3478b22019-11-04 20:38:23 +053015109static const struct snd_kcontrol_new mmul23_mixer_controls[] = {
15110 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_PRI_TDM_TX_0,
15112 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15113 msm_routing_put_audio_mixer),
15114 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15115 MSM_BACKEND_DAI_PRI_TDM_TX_1,
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_2", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_PRI_TDM_TX_2,
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_3", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_PRI_TDM_TX_3,
15124 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15125 msm_routing_put_audio_mixer),
15126 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_SEC_TDM_TX_0,
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_1", SND_SOC_NOPM,
15131 MSM_BACKEND_DAI_SEC_TDM_TX_1,
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_2", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_SEC_TDM_TX_2,
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_3", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_SEC_TDM_TX_3,
15140 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15141 msm_routing_put_audio_mixer),
15142 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_TERT_TDM_TX_0,
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_1", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_TERT_TDM_TX_1,
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_2", SND_SOC_NOPM,
15151 MSM_BACKEND_DAI_TERT_TDM_TX_2,
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_3", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_TERT_TDM_TX_3,
15156 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15157 msm_routing_put_audio_mixer),
15158 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
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_1", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
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_2", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
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_3", SND_SOC_NOPM,
15171 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
15172 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15173 msm_routing_put_audio_mixer),
15174 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
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_1", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
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_2", SND_SOC_NOPM,
15183 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
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_3", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
15188 MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
15189 msm_routing_put_audio_mixer),
15190};
15191
Surendar Karkac1cde372018-08-14 18:56:24 +053015192static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
15193 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15194 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15195 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15196 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015197 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15198 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15199 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15200 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015201 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
15202 MSM_BACKEND_DAI_SLIMBUS_6_TX,
15203 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15204 msm_routing_put_audio_mixer),
15205 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_SLIMBUS_7_TX,
15207 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15208 msm_routing_put_audio_mixer),
15209 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_PRI_MI2S_TX,
15211 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15212 msm_routing_put_audio_mixer),
15213 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15215 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15216 msm_routing_put_audio_mixer),
15217 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15219 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15220 msm_routing_put_audio_mixer),
15221 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15223 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15224 msm_routing_put_audio_mixer),
15225 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
15227 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15228 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015229 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_SENARY_MI2S_TX,
15231 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15232 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015233 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15234 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15235 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15236 msm_routing_put_audio_mixer),
15237 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15238 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15239 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15240 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015241 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_SLIMBUS_9_TX,
15243 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15244 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015245 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15246 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15247 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15248 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015249};
15250
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015251static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15253 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015254 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15255 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015256 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15258 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015260 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15261 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015262 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015264 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_INT3_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("INTERNAL_FM_TX", SND_SOC_NOPM,
15269 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
15281 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
15285 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015286 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15287 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010015288 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15289 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15290 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15291 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015292 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15293 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15294 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15295 msm_routing_put_audio_mixer),
15296 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015298 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080015299 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015300 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15301 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15302 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15303 msm_routing_put_audio_mixer),
15304 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15305 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
15309 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15310 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15311 msm_routing_put_audio_mixer),
15312 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15318 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15319 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015320 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15321 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15322 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15323 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015324 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15325 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15326 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15327 msm_routing_get_audio_mixer,
15328 msm_routing_put_audio_mixer),
15329 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15330 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15331 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15332 msm_routing_get_audio_mixer,
15333 msm_routing_put_audio_mixer),
15334 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15335 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15336 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15337 msm_routing_get_audio_mixer,
15338 msm_routing_put_audio_mixer),
15339 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15340 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15341 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15342 msm_routing_get_audio_mixer,
15343 msm_routing_put_audio_mixer),
15344 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15346 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15347 msm_routing_get_audio_mixer,
15348 msm_routing_put_audio_mixer),
15349 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15350 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15351 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15352 msm_routing_get_audio_mixer,
15353 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015354 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15355 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15356 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15357 msm_routing_put_audio_mixer),
15358 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15359 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15360 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15361 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015362 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15363 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15364 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15365 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015366};
15367
15368static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015369 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15370 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015371 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15372 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015373 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15374 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15375 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015377 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15378 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015379 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015381 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15382 MSM_BACKEND_DAI_INT3_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("INTERNAL_FM_TX", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15394 MSM_BACKEND_DAI_AFE_PCM_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("VOC_REC_DL", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_INCALL_RECORD_RX,
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_UL", SND_SOC_NOPM,
15402 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015403 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15404 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010015405 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15407 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15408 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015409 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15411 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15412 msm_routing_put_audio_mixer),
15413 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15415 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15416 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015417 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15419 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15420 msm_routing_put_audio_mixer),
15421 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15422 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15427 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15428 msm_routing_put_audio_mixer),
15429 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15430 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15434 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15435 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15436 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015437 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15438 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15439 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15440 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015441 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15442 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15443 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15444 msm_routing_get_audio_mixer,
15445 msm_routing_put_audio_mixer),
15446 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15447 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15448 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15449 msm_routing_get_audio_mixer,
15450 msm_routing_put_audio_mixer),
15451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15453 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15454 msm_routing_get_audio_mixer,
15455 msm_routing_put_audio_mixer),
15456 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15457 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15458 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15459 msm_routing_get_audio_mixer,
15460 msm_routing_put_audio_mixer),
15461 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15462 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15463 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15464 msm_routing_get_audio_mixer,
15465 msm_routing_put_audio_mixer),
15466 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15467 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15468 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15469 msm_routing_get_audio_mixer,
15470 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015471 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15472 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15473 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15474 msm_routing_put_audio_mixer),
15475 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15477 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15478 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015479 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15480 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15481 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15482 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015483};
15484
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015485static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
15486 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15487 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15488 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15489 msm_routing_put_audio_mixer),
15490 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15492 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15493 msm_routing_put_audio_mixer),
15494 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_PRI_MI2S_TX,
15496 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15497 msm_routing_put_audio_mixer),
15498 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_INT3_MI2S_TX,
15500 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15501 msm_routing_put_audio_mixer),
15502 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_INT_FM_TX,
15504 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15505 msm_routing_put_audio_mixer),
15506 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15507 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15508 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15509 msm_routing_put_audio_mixer),
15510 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15511 MSM_BACKEND_DAI_AFE_PCM_TX,
15512 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15513 msm_routing_put_audio_mixer),
15514 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15515 MSM_BACKEND_DAI_INCALL_RECORD_RX,
15516 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15517 msm_routing_put_audio_mixer),
15518 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_INCALL_RECORD_TX,
15520 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15521 msm_routing_put_audio_mixer),
15522 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15523 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15524 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15525 msm_routing_put_audio_mixer),
15526 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15527 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15528 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15529 msm_routing_put_audio_mixer),
15530 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15531 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15532 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15533 msm_routing_put_audio_mixer),
15534 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
15543 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15544 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15545 msm_routing_put_audio_mixer),
15546 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15547 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15551 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15552 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15553 msm_routing_put_audio_mixer),
15554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15556 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15557 msm_routing_get_audio_mixer,
15558 msm_routing_put_audio_mixer),
15559 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15560 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15561 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15562 msm_routing_get_audio_mixer,
15563 msm_routing_put_audio_mixer),
15564 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15565 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15566 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15567 msm_routing_get_audio_mixer,
15568 msm_routing_put_audio_mixer),
15569 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15570 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15571 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15572 msm_routing_get_audio_mixer,
15573 msm_routing_put_audio_mixer),
15574 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15575 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15576 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15577 msm_routing_get_audio_mixer,
15578 msm_routing_put_audio_mixer),
15579 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15581 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15582 msm_routing_get_audio_mixer,
15583 msm_routing_put_audio_mixer),
15584 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15585 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15586 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15587 msm_routing_put_audio_mixer),
15588 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15590 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15591 msm_routing_put_audio_mixer),
15592 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15594 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15595 msm_routing_put_audio_mixer),
15596};
15597
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015598static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015599 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15600 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015601 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15602 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015605 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15606 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015607 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015609 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15610 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015617 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15618 msm_routing_put_voice_mixer),
15619};
15620
15621static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015622 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15623 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015624 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15625 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015626 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015628 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15629 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015630 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15631 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015632 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15633 msm_routing_put_voice_mixer),
15634};
15635
15636static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015637 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15638 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015639 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15640 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015641 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15643 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15644 msm_routing_put_voice_mixer),
15645 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15646 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15647 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15648 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015649 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15650 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015651 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015653 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15654 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015655 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15656 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015657 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015659 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15660 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15664 msm_routing_put_voice_mixer),
15665};
15666
15667static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015668 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15669 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015670 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15671 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015672 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15673 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015674 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15675 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15679 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015680 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15681 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015682 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15683 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015684 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015686 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15687 msm_routing_put_voice_mixer),
15688};
15689
15690static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015691 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15692MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015693 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15694 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015695 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15696MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015697 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15698 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015699 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15700MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015701 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15702 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015703 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15704MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015705 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15706 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015707 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15708MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015709 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15710 msm_routing_put_voice_mixer),
15711};
15712
15713static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015714 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15715 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015716 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15717 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015718 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15719 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015720 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15721 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015722 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15723 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015724 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15725 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015728 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15729 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015730 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015732 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15733 msm_routing_put_voice_mixer),
15734};
15735
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015736static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015737 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15738MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015739 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15740 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015741 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15742MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015743 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15744 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15746MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015747 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15748 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15750MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015751 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15752 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015753 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15754MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015755 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15756 msm_routing_put_voice_mixer),
15757};
15758
Karthikeyan Mani57550082018-05-03 18:43:58 -070015759static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15760 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15761 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15762 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15763 msm_routing_put_voice_mixer),
15764 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15766 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15767 msm_routing_put_voice_mixer),
15768 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15769 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15770 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15771 msm_routing_put_voice_mixer),
15772 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15773 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15774 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15775 msm_routing_put_voice_mixer),
15776 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15777 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15778 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15779 msm_routing_put_voice_mixer),
15780};
15781
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015782static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015783 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15784 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015785 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15786 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15790 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15792 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015793 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15794 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015797 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15798 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15802 msm_routing_put_voice_mixer),
15803};
15804
15805static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015806 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15807 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015808 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15809 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015810 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15811 MSM_BACKEND_DAI_MI2S_RX,
15812 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15813 msm_routing_put_voice_mixer),
15814 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_MI2S_RX,
15816 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15817 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015818 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15819 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015820 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15821 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015822 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15823 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015824 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15825 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015826 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15827 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015828 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15829 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015830 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15831 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015832 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15833 msm_routing_put_voice_mixer),
15834};
15835
15836static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015837 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015838 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15840 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015841 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15842 MSM_BACKEND_DAI_PRI_MI2S_RX,
15843 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15844 msm_routing_put_voice_mixer),
15845 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15846 MSM_BACKEND_DAI_PRI_MI2S_RX,
15847 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15848 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015849 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015850 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015851 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15852 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015853 SOC_DOUBLE_EXT("QCHAT", 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_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15856 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("VoiceMMode1", 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_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015861 SOC_DOUBLE_EXT("VoiceMMode2", 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_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15864 msm_routing_put_voice_mixer),
15865};
15866
15867static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015868 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15869MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015870 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15871 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15873MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015874 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15875 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015876 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15877MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015878 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15879 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015880 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15881MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015882 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15883 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015884 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15885MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015886 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15887 msm_routing_put_voice_mixer),
15888};
15889
15890static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015891 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15892 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015893 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15894 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015895 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15896 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015897 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15898 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015899 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15900 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015901 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15902 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015903 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15904 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015905 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015909 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15910 msm_routing_put_voice_mixer),
15911};
15912
15913static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015914 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15915 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015916 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15917 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015918 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15920 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15921 msm_routing_put_voice_mixer),
15922 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15924 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15925 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015926 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15927 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015928 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15929 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015930 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015932 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015934 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15935 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015936 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015938 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015940 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15941 msm_routing_put_voice_mixer),
15942};
15943
15944static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015945 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015947 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15948 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015949 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15950 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15951 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15952 msm_routing_put_voice_mixer),
15953 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15954 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15955 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15956 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015957 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15958 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015959 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15960 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015961 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15962 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015963 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15964 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15968 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015969 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15970 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015971 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15972 msm_routing_put_voice_mixer),
15973};
15974
15975static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015976 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015978 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15979 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015980 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15982 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15983 msm_routing_put_voice_stub_mixer),
15984 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15985 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15986 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15987 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015988 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15989 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015990 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15991 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015992 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15993 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015994 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15995 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015996 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015998 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15999 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016002 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16003 msm_routing_put_voice_mixer),
16004};
16005
Karthikeyan Manic3700752019-03-11 18:33:53 -070016006static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
16007 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16008 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16009 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16010 msm_routing_put_voice_mixer),
16011 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16013 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16014 msm_routing_put_voice_mixer),
16015 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16017 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16018 msm_routing_put_voice_mixer),
16019 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16020 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16021 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16022 msm_routing_put_voice_mixer),
16023 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16024 MSM_BACKEND_DAI_SENARY_MI2S_RX,
16025 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16026 msm_routing_put_voice_mixer),
16027};
16028
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016029static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016030 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16031 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016032 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16033 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016034 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16035 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016036 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16037 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016040 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16041 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016042 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16043 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016044 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16045 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016048 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16049 msm_routing_put_voice_mixer),
16050};
16051
16052static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016053 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16054 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016055 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16056 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016057 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16058 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016059 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16060 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016061 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016063 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16064 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016065 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16066 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016067 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16068 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016069 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16070 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016071 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16072 msm_routing_put_voice_mixer),
16073};
16074
16075static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016076 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16077MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016078 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16079 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016080 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16081MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016082 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16083 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016084 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16085MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016086 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16087 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16089MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016090 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16091 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016092 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16093MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016094 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16095 msm_routing_put_voice_mixer),
16096};
16097
16098static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016099 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16100MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016101 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16102 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016103 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16104MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016105 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16106 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016107 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16108MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016109 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16110 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016111 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16112MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016113 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16114 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016115 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16116MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016117 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16118 msm_routing_put_voice_mixer),
16119};
16120
16121static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016122 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16123MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016124 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16125 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16127MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016128 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16129 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016130 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16131MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016132 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16133 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016134 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16135MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016136 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16137 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016138 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16139MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016140 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16141 msm_routing_put_voice_mixer),
16142};
16143
Rohit Kumara5077932017-09-10 22:05:05 +053016144static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016145 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16146MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016147 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16148 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16150MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016151 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16152 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16154MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016155 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16156 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16158MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016159 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16160 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16162MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016163 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16164 msm_routing_put_voice_mixer),
16165};
16166
Karthikeyan Manic3700752019-03-11 18:33:53 -070016167static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
16168 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16169 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16170 msm_routing_put_voice_mixer),
16171 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16172 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16173 msm_routing_put_voice_mixer),
16174 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16175 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16176 msm_routing_put_voice_mixer),
16177 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16179 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16180 msm_routing_put_voice_mixer),
16181 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
16183 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16184 msm_routing_put_voice_mixer),
16185};
16186
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016187static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016188 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16189 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016190 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16191 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016192 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016194 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16195 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16199 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016200 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016202 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16203 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016206 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16207 msm_routing_put_voice_mixer),
16208};
16209
16210static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16212MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016213 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16214 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016215 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16216MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016217 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16218 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016219 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16220MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016221 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16222 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016223 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16224MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016225 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16226 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16228MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016229 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16230 msm_routing_put_voice_mixer),
16231};
16232
16233static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016234 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016236 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16237 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016238 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16239 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016240 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16241 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016242 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016244 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16245 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016246 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016248 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16249 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016250 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016252 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16253 msm_routing_put_voice_mixer),
16254};
16255
16256static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016257 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16258 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016259 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16260 msm_routing_put_voice_mixer),
16261};
16262
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053016263static const struct snd_kcontrol_new quin_tdm_rx_2_voice_mixer_controls[] = {
16264 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16265 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
16266 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16267 msm_routing_put_voice_mixer),
16268};
16269
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016270static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
16271 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16272 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16273 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16274 msm_routing_put_voice_mixer),
16275 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16276 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16277 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16278 msm_routing_put_voice_mixer),
16279 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16281 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16282 msm_routing_put_voice_mixer),
16283 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16284 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16285 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16286 msm_routing_put_voice_mixer),
16287 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16288 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16289 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16290 msm_routing_put_voice_mixer),
16291};
16292
16293static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
16294 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16296 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16297 msm_routing_put_voice_mixer),
16298 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16299 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16300 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16301 msm_routing_put_voice_mixer),
16302 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16304 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16305 msm_routing_put_voice_mixer),
16306 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16307 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16308 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16309 msm_routing_put_voice_mixer),
16310 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16312 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16313 msm_routing_put_voice_mixer),
16314};
16315
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016316static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
16317 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16318 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16319 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16320 msm_routing_put_voice_mixer),
16321 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16322 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16323 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16324 msm_routing_put_voice_mixer),
16325 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16327 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16328 msm_routing_put_voice_mixer),
16329 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16331 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16332 msm_routing_put_voice_mixer),
16333 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16335 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16336 msm_routing_put_voice_mixer),
16337};
16338
16339static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
16340 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16342 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16343 msm_routing_put_voice_mixer),
16344 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16346 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16347 msm_routing_put_voice_mixer),
16348 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16350 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16351 msm_routing_put_voice_mixer),
16352 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16354 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16355 msm_routing_put_voice_mixer),
16356 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16358 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16359 msm_routing_put_voice_mixer),
16360};
16361
16362static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
16363 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16365 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16366 msm_routing_put_voice_mixer),
16367 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16369 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16370 msm_routing_put_voice_mixer),
16371 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16373 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16374 msm_routing_put_voice_mixer),
16375 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16377 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16378 msm_routing_put_voice_mixer),
16379 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16381 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16382 msm_routing_put_voice_mixer),
16383};
16384
16385static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
16386 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16387 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16388 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16389 msm_routing_put_voice_mixer),
16390 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16391 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16392 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16393 msm_routing_put_voice_mixer),
16394 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16395 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16396 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16397 msm_routing_put_voice_mixer),
16398 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16400 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16401 msm_routing_put_voice_mixer),
16402 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16404 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16405 msm_routing_put_voice_mixer),
16406};
16407
16408static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
16409 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16410 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16411 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16412 msm_routing_put_voice_mixer),
16413 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16414 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16415 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16416 msm_routing_put_voice_mixer),
16417 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16419 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16420 msm_routing_put_voice_mixer),
16421 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16422 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16423 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16424 msm_routing_put_voice_mixer),
16425 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16426 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16427 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16428 msm_routing_put_voice_mixer),
16429};
16430
16431static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
16432 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16434 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16435 msm_routing_put_voice_mixer),
16436 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16437 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16438 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16439 msm_routing_put_voice_mixer),
16440 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16442 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16443 msm_routing_put_voice_mixer),
16444 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16446 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16447 msm_routing_put_voice_mixer),
16448 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16450 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16451 msm_routing_put_voice_mixer),
16452};
16453
16454static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
16455 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16457 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16458 msm_routing_put_voice_mixer),
16459 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16460 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16461 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16462 msm_routing_put_voice_mixer),
16463 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16464 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16465 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16466 msm_routing_put_voice_mixer),
16467 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16469 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16470 msm_routing_put_voice_mixer),
16471 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16473 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16474 msm_routing_put_voice_mixer),
16475};
16476
16477static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
16478 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16479 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16480 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16481 msm_routing_put_voice_mixer),
16482 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16483 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16484 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16485 msm_routing_put_voice_mixer),
16486 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16487 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16488 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16489 msm_routing_put_voice_mixer),
16490 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16492 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16493 msm_routing_put_voice_mixer),
16494 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16495 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16496 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16497 msm_routing_put_voice_mixer),
16498};
16499
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016500static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
16501 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16502 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16503 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16504 msm_routing_put_voice_mixer),
16505 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16507 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16508 msm_routing_put_voice_stub_mixer),
16509 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16510 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16511 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16512 msm_routing_put_voice_stub_mixer),
16513 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16514 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16515 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16516 msm_routing_put_voice_mixer),
16517 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16518 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16519 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16520 msm_routing_put_voice_mixer),
16521 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16522 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16523 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16524 msm_routing_put_voice_mixer),
16525 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16527 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16528 msm_routing_put_voice_mixer),
16529 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16530 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16531 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16532 msm_routing_put_voice_mixer),
16533};
16534
16535static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
16536 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16537 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16538 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16539 msm_routing_put_voice_mixer),
16540 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16542 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16543 msm_routing_put_voice_stub_mixer),
16544 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16545 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16546 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16547 msm_routing_put_voice_stub_mixer),
16548 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16549 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16550 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16551 msm_routing_put_voice_mixer),
16552 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16554 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16555 msm_routing_put_voice_mixer),
16556 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16558 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16559 msm_routing_put_voice_mixer),
16560 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16562 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16563 msm_routing_put_voice_mixer),
16564 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16565 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16566 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16567 msm_routing_put_voice_mixer),
16568};
16569
16570static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
16571 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16572 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16573 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16574 msm_routing_put_voice_mixer),
16575 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16576 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16577 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16578 msm_routing_put_voice_stub_mixer),
16579 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16580 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16581 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16582 msm_routing_put_voice_stub_mixer),
16583 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16585 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16586 msm_routing_put_voice_mixer),
16587 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16588 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16589 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16590 msm_routing_put_voice_mixer),
16591 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16592 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16593 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16594 msm_routing_put_voice_mixer),
16595 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16596 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16597 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16598 msm_routing_put_voice_mixer),
16599 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16600 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16601 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16602 msm_routing_put_voice_mixer),
16603};
16604
16605static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
16606 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16607 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16608 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16609 msm_routing_put_voice_mixer),
16610 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16612 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16613 msm_routing_put_voice_stub_mixer),
16614 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16616 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16617 msm_routing_put_voice_stub_mixer),
16618 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16620 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16621 msm_routing_put_voice_mixer),
16622 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16624 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16625 msm_routing_put_voice_mixer),
16626 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16628 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16629 msm_routing_put_voice_mixer),
16630 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16631 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16632 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16633 msm_routing_put_voice_mixer),
16634 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16636 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16637 msm_routing_put_voice_mixer),
16638};
16639
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016640static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016641 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16642 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016643 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16644 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016645 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016647 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16648 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016649};
16650
16651static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016652 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16653 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016654 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16655 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016656 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16657 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016658 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16659 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016660};
16661
16662static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016663 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16664 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016665 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16666 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016667 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16668 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016669 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16670 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016671};
16672
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016673static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016674 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16675 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016676 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16677 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016678 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16679 MSM_BACKEND_DAI_MI2S_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("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016683 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16684 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016685 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016686 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16687 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016688 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016689 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16690 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016691 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016692 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16693 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016694 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016695 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16696 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016697 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016698 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16699 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016700 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016701 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16702 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016703 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016704 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16705 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016706 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16707 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16708 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016709 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016710 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16711 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016712 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16713 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16714 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016715 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016716 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16717 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016718 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016719 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16720 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016721 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016722 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16723 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016724 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016725 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16726 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016727 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16728 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016729 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16730 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016731 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016732 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016733 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016734 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16735 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16736 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16737 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16738 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16739 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016740 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16741 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16742 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016743 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16745 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16746 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16747 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16748 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16749 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16750 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16751 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16754 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16757 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16758 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16759 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16760 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016761 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16762 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16763 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16764 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16765 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16766 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016767 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016768 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16769 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016770};
16771
16772static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016773 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16774 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016775 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16776 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016777 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16778 MSM_BACKEND_DAI_MI2S_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("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016782 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16783 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016784 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016785 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16786 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016787 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016788 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16789 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016790 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016791 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16792 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016793 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016794 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16795 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016796 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016797 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16798 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016799 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016800 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16801 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016802 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016803 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16804 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016805 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16806 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16807 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016808 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016809 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16810 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016811 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16812 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16813 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016814 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016815 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16816 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016817 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016818 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16819 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016820 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016821 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16822 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016823 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016824 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16825 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016826 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016827 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16828 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016829 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16830 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16831 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16832 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16833 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16834 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016835 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16836 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16837 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016838 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16839 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16840 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16841 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16842 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16843 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16844 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16845 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16846 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16847 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16848 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16849 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16850 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16851 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16852 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16853 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16854 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16855 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016856 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16857 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16858 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16859 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16860 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16861 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016862 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16863 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016864 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016865};
16866
16867static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016868 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16869 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016870 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16871 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016872 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16873 MSM_BACKEND_DAI_MI2S_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("SLIM_0_TX_Voip", SND_SOC_NOPM,
16877 MSM_BACKEND_DAI_SLIMBUS_0_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("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16881 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16885 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16889 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16893 MSM_BACKEND_DAI_SEC_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("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16897 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16901 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16905 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016906 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16907 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016908 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16909 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16910 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16911 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016912 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16913 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016914 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16915 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016916 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16917 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16918 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16919 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016920 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16921 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016922 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16923 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016924 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16925 MSM_BACKEND_DAI_INT3_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("SLIM_7_TX_Voip", SND_SOC_NOPM,
16929 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX_Voip", SND_SOC_NOPM,
16933 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16937 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016940 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16941 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16942 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16943 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16944 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16945 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016946 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16948 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016949 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16950 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16951 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16954 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16957 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16958 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16959 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16960 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16961 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16962 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16963 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16966 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016967 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16968 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16969 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016970};
16971
16972static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016973 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16974 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016975 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16976 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016977 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16978 MSM_BACKEND_DAI_INT_BT_SCO_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("SLIM_1_TX", SND_SOC_NOPM,
16982 MSM_BACKEND_DAI_SLIMBUS_1_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("STUB_1_TX_HL", SND_SOC_NOPM,
16986 MSM_BACKEND_DAI_EXTPROC_EC_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("MI2S_TX", SND_SOC_NOPM,
16990 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
16994 MSM_BACKEND_DAI_PRI_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("TERT_MI2S_TX", SND_SOC_NOPM,
16998 MSM_BACKEND_DAI_TERTIARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
17002 MSM_BACKEND_DAI_INT3_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17006 MSM_BACKEND_DAI_QUATERNARY_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17018 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17022 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17026 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017027 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17028 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017029 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17030 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17031 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17032 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017033 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17034 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017035 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_3_TX", SND_SOC_NOPM,
17038 MSM_BACKEND_DAI_SLIMBUS_3_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("AFE_PCM_TX", SND_SOC_NOPM,
17042 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017043 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17044 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017045 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17046 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17050 MSM_BACKEND_DAI_SLIMBUS_8_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017053 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17054 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
17055 1, 0, msm_routing_get_voice_stub_mixer,
17056 msm_routing_put_voice_stub_mixer),
17057 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17058 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
17059 1, 0, msm_routing_get_voice_stub_mixer,
17060 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017061 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17062 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
17063 1, 0, msm_routing_get_voice_stub_mixer,
17064 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017065 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17066 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
17067 1, 0, msm_routing_get_voice_stub_mixer,
17068 msm_routing_put_voice_stub_mixer),
17069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2", SND_SOC_NOPM,
17074 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3", SND_SOC_NOPM,
17078 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4", SND_SOC_NOPM,
17082 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5", SND_SOC_NOPM,
17086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
17087 1, 0, msm_routing_get_voice_stub_mixer,
17088 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017089};
17090
17091static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017092 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
17093 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017094 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17095 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017096 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17097 MSM_BACKEND_DAI_SLIMBUS_1_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("STUB_1_TX_HL", SND_SOC_NOPM,
17101 MSM_BACKEND_DAI_EXTPROC_EC_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17105 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17109 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17113 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17117 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17121 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017122 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17123 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017124 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17125 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17126 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17127 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017128 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17129 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017130 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_3_TX", SND_SOC_NOPM,
17133 MSM_BACKEND_DAI_SLIMBUS_3_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("AFE_PCM_TX", SND_SOC_NOPM,
17137 MSM_BACKEND_DAI_AFE_PCM_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("PRI_MI2S_TX", SND_SOC_NOPM,
17141 MSM_BACKEND_DAI_PRI_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17145 MSM_BACKEND_DAI_QUATERNARY_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),
Josh Kirsch9d769302018-04-10 17:25:42 -070017148 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17149 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
17150 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17151 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017152 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17153 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017154 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17155 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017156 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17157 MSM_BACKEND_DAI_SLIMBUS_8_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017160 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17161 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
17162 1, 0, msm_routing_get_voice_stub_mixer,
17163 msm_routing_put_voice_stub_mixer),
17164 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17165 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
17166 1, 0, msm_routing_get_voice_stub_mixer,
17167 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017168 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17169 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
17170 1, 0, msm_routing_get_voice_stub_mixer,
17171 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017172 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17173 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
17174 1, 0, msm_routing_get_voice_stub_mixer,
17175 msm_routing_put_voice_stub_mixer),
17176 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17177 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2", SND_SOC_NOPM,
17181 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3", SND_SOC_NOPM,
17185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4", SND_SOC_NOPM,
17189 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5", SND_SOC_NOPM,
17193 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
17194 1, 0, msm_routing_get_voice_stub_mixer,
17195 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017196};
17197
17198static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017199 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
17200 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017201 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17202 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017203 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17204 MSM_BACKEND_DAI_SLIMBUS_1_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("STUB_1_TX_HL", SND_SOC_NOPM,
17208 MSM_BACKEND_DAI_EXTPROC_EC_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17212 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17216 MSM_BACKEND_DAI_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17220 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17224 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17228 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017229 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17230 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017231 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17232 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17233 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17234 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017235 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17236 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017237 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_3_TX", SND_SOC_NOPM,
17240 MSM_BACKEND_DAI_SLIMBUS_3_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("AFE_PCM_TX", SND_SOC_NOPM,
17244 MSM_BACKEND_DAI_AFE_PCM_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("PRI_MI2S_TX", SND_SOC_NOPM,
17248 MSM_BACKEND_DAI_PRI_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17252 MSM_BACKEND_DAI_QUATERNARY_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("SLIM_7_TX", SND_SOC_NOPM,
17256 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17260 MSM_BACKEND_DAI_SLIMBUS_8_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017263 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17264 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17265 1, 0, msm_routing_get_voice_stub_mixer,
17266 msm_routing_put_voice_stub_mixer),
17267 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17268 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
17269 1, 0, msm_routing_get_voice_stub_mixer,
17270 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017271 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17272 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
17273 1, 0, msm_routing_get_voice_stub_mixer,
17274 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017275 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17276 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17277 1, 0, msm_routing_get_voice_stub_mixer,
17278 msm_routing_put_voice_stub_mixer),
17279 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17280 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2", SND_SOC_NOPM,
17284 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3", SND_SOC_NOPM,
17288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4", SND_SOC_NOPM,
17292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5", SND_SOC_NOPM,
17296 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
17297 1, 0, msm_routing_get_voice_stub_mixer,
17298 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017299};
17300
17301static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017302 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
17303 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017304 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17305 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017306 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
17307 MSM_BACKEND_DAI_SLIMBUS_0_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("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
17311 MSM_BACKEND_DAI_INT_BT_SCO_TX,
17312 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017313 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017314 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
17315 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017316 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17317 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017318 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17319 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17323 MSM_BACKEND_DAI_SEC_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("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17327 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17331 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17335 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017336 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17337 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017338 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17339 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17340 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17341 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017342 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
17343 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017344 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("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
17347 MSM_BACKEND_DAI_PRI_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("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
17351 MSM_BACKEND_DAI_TERTIARY_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("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
17355 MSM_BACKEND_DAI_INT3_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("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
17359 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX_QCHAT", SND_SOC_NOPM,
17363 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
17367 MSM_BACKEND_DAI_USB_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),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017370 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17371 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17372 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17373 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17374 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17375 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017376 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17377 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17378 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017379 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17380 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17381 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17382 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17383 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17384 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17385 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17386 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17387 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17388 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
17389 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
17390 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17391 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
17392 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
17393 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17394 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
17395 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
17396 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017397};
17398
17399static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017400 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17401 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017402 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017404 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17405 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017406 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
17409 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017410 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17413 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017414 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
17417 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017418 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17419 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017420 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17421 MSM_BACKEND_DAI_INT0_MI2S_RX,
17422 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017424 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17425 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017426 MSM_BACKEND_DAI_INT3_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17429 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017430 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
17433 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017434 MSM_BACKEND_DAI_INT_BT_SCO_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("SLIM_7_TX", SND_SOC_NOPM,
17437 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017438 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17441 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017442 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17443 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017444 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17445 MSM_BACKEND_DAI_INT0_MI2S_RX,
17446 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17447 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017448};
17449
17450static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017451 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17452 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017453 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017455 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17456 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017457 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
17460 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017461 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17464 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017465 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
17468 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017469 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17470 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017471 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17472 MSM_BACKEND_DAI_INT4_MI2S_RX,
17473 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017475 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17476 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017477 MSM_BACKEND_DAI_INT3_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17480 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017481 MSM_BACKEND_DAI_INT_FM_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_BT_SCO_TX", SND_SOC_NOPM,
17484 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017485 MSM_BACKEND_DAI_INT_BT_SCO_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("SLIM_7_TX", SND_SOC_NOPM,
17488 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017489 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17492 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017493 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17494 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017495 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17496 MSM_BACKEND_DAI_INT4_MI2S_RX,
17497 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17498 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017499};
17500
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017501static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
17502 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17503 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17504 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17505 msm_routing_put_port_mixer),
17506 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17507 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17508 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17509 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017510 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17511 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17512 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17513 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017514 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17515 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17516 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17517 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017518};
17519
17520static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
17521 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17522 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17524 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017525 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17526 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17527 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17528 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017529 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080017530 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017531 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17532 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017533 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17534 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17535 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17536 msm_routing_put_port_mixer),
17537
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017538};
17539
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053017540static const struct snd_kcontrol_new rx_cdc_dma_rx_1_port_mixer_controls[] = {
17541 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17542 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17543 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17544 msm_routing_put_port_mixer),
17545 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17546 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17548 msm_routing_put_port_mixer),
17549 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17550 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17551 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17552 msm_routing_put_port_mixer),
17553 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17554 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17555 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17556 msm_routing_put_port_mixer),
17557};
17558
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017559static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017560 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17561 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017562 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017564 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17565 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017566 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
17569 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017570 MSM_BACKEND_DAI_SLIMBUS_1_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_7_TX", SND_SOC_NOPM,
17573 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017574 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17577 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017578 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17581 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017582 MSM_BACKEND_DAI_AUXPCM_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("SEC_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_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17589 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017590 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17593 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017594 MSM_BACKEND_DAI_QUAT_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17597 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017598 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17599 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017600 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17601 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17602 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017604 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17605 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017606 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
17609 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017610 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
17613 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017614 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
17617 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017618 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17621 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017622 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
17625 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017626 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17627 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017628 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17629 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17630 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017632 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17633 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017634 MSM_BACKEND_DAI_INT_BT_SCO_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("PRI_MI2S_RX", SND_SOC_NOPM,
17637 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017638 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017640 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
17641 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017642 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_RX", SND_SOC_NOPM,
17645 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017646 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_RX", SND_SOC_NOPM,
17649 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017650 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_RX", SND_SOC_NOPM,
17653 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017654 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17655 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017656 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
17657 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17658 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17659 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017660 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17661 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17662 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053017663 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017664};
17665
17666static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017667 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17668 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017669 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017671 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17672 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017673 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
17676 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017677 MSM_BACKEND_DAI_SLIMBUS_1_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17680 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017681 MSM_BACKEND_DAI_SEC_AUXPCM_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("QUAT_TDM_TX_0", SND_SOC_NOPM,
17684 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017685 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017687 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17688 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017689 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17690 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017691 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17692 MSM_BACKEND_DAI_AUXPCM_RX,
17693 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17694 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017695};
17696
17697static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017698 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17699 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017700 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017702 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17703 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017704 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17707 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017708 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017710 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17711 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017712 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17713 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017714};
17715
17716static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017717 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17718 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017719 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017721 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17722 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017723 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17726 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017727 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17728 msm_routing_put_port_mixer),
17729};
17730
17731static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017732 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17733 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017734 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017736 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17737 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017738 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17741 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017742 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17743 msm_routing_put_port_mixer),
17744};
17745
Rohit Kumara5077932017-09-10 22:05:05 +053017746static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017747 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17748 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017749 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017751 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17752 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017753 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17756 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017757 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17758 msm_routing_put_port_mixer),
17759};
17760
Karthikeyan Manic3700752019-03-11 18:33:53 -070017761static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17762 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17763 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17764 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17765 msm_routing_put_port_mixer),
17766 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17767 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17768 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17769 msm_routing_put_port_mixer),
17770 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17771 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17772 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17773 msm_routing_put_port_mixer),
17774};
17775
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017776static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017777 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17778 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017779 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017781 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17782 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017783 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17786 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017787 MSM_BACKEND_DAI_AUXPCM_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("SEC_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_SEC_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17794 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017795 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17798 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017799 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17800 msm_routing_put_port_mixer),
17801};
17802
17803static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017804 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17805 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017806 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017808 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17809 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017810 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017812 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17813 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017814 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017816 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17817 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017818 MSM_BACKEND_DAI_AUXPCM_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("SLIM_0_RX", SND_SOC_NOPM,
17821 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017822 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17823 msm_routing_put_port_mixer),
17824};
17825
17826static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017827 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17828 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017829 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017831 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17832 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017833 MSM_BACKEND_DAI_SLIMBUS_0_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_1_TX", SND_SOC_NOPM,
17836 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017837 MSM_BACKEND_DAI_SLIMBUS_1_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_7_TX", SND_SOC_NOPM,
17840 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017841 MSM_BACKEND_DAI_SLIMBUS_7_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_8_TX", SND_SOC_NOPM,
17844 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017845 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17848 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017849 MSM_BACKEND_DAI_AUXPCM_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("SEC_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_SEC_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("MI2S_TX", SND_SOC_NOPM,
17856 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017857 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
17860 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017861 MSM_BACKEND_DAI_PRI_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("TERT_MI2S_TX", SND_SOC_NOPM,
17864 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017865 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17868 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017869 MSM_BACKEND_DAI_QUATERNARY_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17872 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017873 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17874 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017875 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17876 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17877 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17878 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017879};
17880
17881static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017882 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17883 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017884 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017886 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17887 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017888 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17889 msm_routing_put_port_mixer),
17890};
17891
17892static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017893 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17894 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017895 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017897 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17898 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017899 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17900 msm_routing_put_port_mixer),
17901};
17902
17903
17904static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017905 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17906 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017907 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17908 msm_routing_put_port_mixer),
17909};
17910
17911static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017912 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17913 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017914 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17915 msm_routing_put_port_mixer),
17916};
17917
Karthikeyan Mani57550082018-05-03 18:43:58 -070017918static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17919 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17920 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17921 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17922 msm_routing_put_port_mixer),
17923};
17924
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017925static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017926 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17927 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017928 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17929 msm_routing_put_port_mixer),
17930};
17931
17932static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017933 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17934 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017935 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017937 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17938 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017939 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17940 msm_routing_put_port_mixer),
17941};
17942
17943static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017944 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17945 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017946 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017948 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17949 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017950 MSM_BACKEND_DAI_TERTIARY_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17953 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017954 MSM_BACKEND_DAI_INT_FM_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17957 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017958 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017960 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17961 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017962 MSM_BACKEND_DAI_INT_BT_SCO_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("PRI_MI2S_TX", SND_SOC_NOPM,
17965 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017966 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017968 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17969 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017970 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17971 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017972 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17973 MSM_BACKEND_DAI_PRI_MI2S_RX,
17974 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017976 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17977 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017978 MSM_BACKEND_DAI_SLIMBUS_0_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_8_TX", SND_SOC_NOPM,
17981 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017982 MSM_BACKEND_DAI_SLIMBUS_8_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17985 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017986 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17987 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017988};
17989
17990static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017991 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17992 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017993 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17994 msm_routing_put_port_mixer),
17995};
17996
17997static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017998 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17999 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018000 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018002 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18003 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018004 MSM_BACKEND_DAI_TERTIARY_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18007 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018008 MSM_BACKEND_DAI_INT_FM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18011 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018012 MSM_BACKEND_DAI_AUXPCM_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("SLIM_0_TX", SND_SOC_NOPM,
18015 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018016 MSM_BACKEND_DAI_SLIMBUS_0_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("SEC_MI2S_TX", SND_SOC_NOPM,
18019 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018020 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18023 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018024 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
18027 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018028 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18029 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018030 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18031 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
18032 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018034 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
18035 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018036 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18037 msm_routing_put_port_mixer),
18038};
18039
Rohit Kumara5077932017-09-10 22:05:05 +053018040static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018041 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18042 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018043 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018045 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18046 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018047 MSM_BACKEND_DAI_TERTIARY_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("SLIM_0_TX", SND_SOC_NOPM,
18050 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018051 MSM_BACKEND_DAI_SLIMBUS_0_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18054 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018055 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018057 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
18058 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018059 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18060 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018061 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18062 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
18063 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018065 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18066 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018067 MSM_BACKEND_DAI_SECONDARY_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("SLIM_8_TX", SND_SOC_NOPM,
18070 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053018071 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18072 msm_routing_put_port_mixer),
18073};
18074
Karthikeyan Manic3700752019-03-11 18:33:53 -070018075static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
18076 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18077 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18078 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18079 msm_routing_put_port_mixer),
18080 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
18081 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18082 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18083 msm_routing_put_port_mixer),
18084 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
18085 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18086 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
18087 msm_routing_put_port_mixer),
18088 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18089 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18090 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18091 msm_routing_put_port_mixer),
18092 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
18093 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18094 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18095 msm_routing_put_port_mixer),
18096 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
18097 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18098 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18099 msm_routing_put_port_mixer),
18100 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18101 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18102 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
18103 msm_routing_put_port_mixer),
18104 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
18105 MSM_BACKEND_DAI_SENARY_MI2S_RX,
18106 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
18107 msm_routing_put_port_mixer),
18108};
18109
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018110static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018111 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18112 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018113 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18114 msm_routing_get_port_mixer,
18115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018116 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18117 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018118 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18119 msm_routing_get_port_mixer,
18120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018121 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18122 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018123 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18124 msm_routing_get_port_mixer,
18125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018126 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18127 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018128 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18129 msm_routing_get_port_mixer,
18130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018131 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18132 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018133 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18134 msm_routing_get_port_mixer,
18135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018136 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18137 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018138 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18139 msm_routing_get_port_mixer,
18140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018141 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18142 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018143 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18144 msm_routing_get_port_mixer,
18145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018146 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18147 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018148 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18149 msm_routing_get_port_mixer,
18150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018151 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18152 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018153 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18154 msm_routing_get_port_mixer,
18155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018156 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18157 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018158 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18159 msm_routing_get_port_mixer,
18160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018161 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18162 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018163 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18164 msm_routing_get_port_mixer,
18165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018166 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18167 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018168 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18169 msm_routing_get_port_mixer,
18170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018171 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18172 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018173 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18174 msm_routing_get_port_mixer,
18175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018176 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18177 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018178 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18179 msm_routing_get_port_mixer,
18180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018181 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18182 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018183 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18184 msm_routing_get_port_mixer,
18185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018186 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18187 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018188 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18189 msm_routing_get_port_mixer,
18190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018191 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18192 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018193 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18194 msm_routing_get_port_mixer,
18195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018196 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18197 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018198 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18199 msm_routing_get_port_mixer,
18200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018201 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18202 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018203 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18204 msm_routing_get_port_mixer,
18205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018206 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18207 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018208 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18209 msm_routing_get_port_mixer,
18210 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018211 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18212 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18213 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18214 msm_routing_get_port_mixer,
18215 msm_routing_put_port_mixer),
18216 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18217 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18218 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18219 msm_routing_get_port_mixer,
18220 msm_routing_put_port_mixer),
18221 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18222 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18223 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18224 msm_routing_get_port_mixer,
18225 msm_routing_put_port_mixer),
18226 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18227 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18228 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18229 msm_routing_get_port_mixer,
18230 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018231};
18232
18233static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018234 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18235 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018236 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18237 msm_routing_get_port_mixer,
18238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018239 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18240 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018241 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18242 msm_routing_get_port_mixer,
18243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018244 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18245 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018246 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18247 msm_routing_get_port_mixer,
18248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018249 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18250 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018251 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18252 msm_routing_get_port_mixer,
18253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018254 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18255 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018256 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18257 msm_routing_get_port_mixer,
18258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018259 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18260 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018261 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18262 msm_routing_get_port_mixer,
18263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018264 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18265 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018266 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18267 msm_routing_get_port_mixer,
18268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018269 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18270 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018271 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18272 msm_routing_get_port_mixer,
18273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018274 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18275 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018276 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18277 msm_routing_get_port_mixer,
18278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018279 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18280 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018281 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18282 msm_routing_get_port_mixer,
18283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018284 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18285 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018286 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18287 msm_routing_get_port_mixer,
18288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018289 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18290 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018291 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18292 msm_routing_get_port_mixer,
18293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018294 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18295 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018296 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18297 msm_routing_get_port_mixer,
18298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018299 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18300 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018301 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18302 msm_routing_get_port_mixer,
18303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018304 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18305 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018306 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18307 msm_routing_get_port_mixer,
18308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018309 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18310 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018311 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18312 msm_routing_get_port_mixer,
18313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018314 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18315 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018316 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18317 msm_routing_get_port_mixer,
18318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018319 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18320 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018321 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18322 msm_routing_get_port_mixer,
18323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018324 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18325 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018326 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18327 msm_routing_get_port_mixer,
18328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018329 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18330 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018331 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18332 msm_routing_get_port_mixer,
18333 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018334 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18335 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18336 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18337 msm_routing_get_port_mixer,
18338 msm_routing_put_port_mixer),
18339 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18340 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18341 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18342 msm_routing_get_port_mixer,
18343 msm_routing_put_port_mixer),
18344 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18345 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18346 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18347 msm_routing_get_port_mixer,
18348 msm_routing_put_port_mixer),
18349 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18350 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18351 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18352 msm_routing_get_port_mixer,
18353 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018354};
18355
18356static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018357 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18358 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018359 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18360 msm_routing_get_port_mixer,
18361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018362 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18363 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018364 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18365 msm_routing_get_port_mixer,
18366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018367 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18368 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018369 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18370 msm_routing_get_port_mixer,
18371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018372 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18373 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018374 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18375 msm_routing_get_port_mixer,
18376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018377 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18378 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018379 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18380 msm_routing_get_port_mixer,
18381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018382 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18383 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018384 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18385 msm_routing_get_port_mixer,
18386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018387 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18388 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018389 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18390 msm_routing_get_port_mixer,
18391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018392 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18393 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018394 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18395 msm_routing_get_port_mixer,
18396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018397 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18398 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018399 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18400 msm_routing_get_port_mixer,
18401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018402 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18403 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018404 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18405 msm_routing_get_port_mixer,
18406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018407 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18408 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018409 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18410 msm_routing_get_port_mixer,
18411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018412 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18413 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018414 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18415 msm_routing_get_port_mixer,
18416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018417 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18418 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018419 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18420 msm_routing_get_port_mixer,
18421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018422 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18423 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018424 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18425 msm_routing_get_port_mixer,
18426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018427 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18428 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018429 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18430 msm_routing_get_port_mixer,
18431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018432 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18433 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018434 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18435 msm_routing_get_port_mixer,
18436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018437 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18438 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018439 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18440 msm_routing_get_port_mixer,
18441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018442 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18443 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018444 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18445 msm_routing_get_port_mixer,
18446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018447 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18448 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018449 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18450 msm_routing_get_port_mixer,
18451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018452 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18453 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018454 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18455 msm_routing_get_port_mixer,
18456 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018457 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18458 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18459 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18460 msm_routing_get_port_mixer,
18461 msm_routing_put_port_mixer),
18462 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18463 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18464 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18465 msm_routing_get_port_mixer,
18466 msm_routing_put_port_mixer),
18467 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18468 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18469 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18470 msm_routing_get_port_mixer,
18471 msm_routing_put_port_mixer),
18472 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18473 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18474 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18475 msm_routing_get_port_mixer,
18476 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018477};
18478
18479static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018480 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18481 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018482 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18483 msm_routing_get_port_mixer,
18484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018485 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18486 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018487 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18488 msm_routing_get_port_mixer,
18489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018490 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18491 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018492 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18493 msm_routing_get_port_mixer,
18494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018495 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18496 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018497 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18498 msm_routing_get_port_mixer,
18499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018500 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18501 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018502 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18503 msm_routing_get_port_mixer,
18504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018505 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18506 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018507 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18508 msm_routing_get_port_mixer,
18509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018510 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18511 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018512 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18513 msm_routing_get_port_mixer,
18514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018515 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18516 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018517 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18518 msm_routing_get_port_mixer,
18519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018520 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18521 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018522 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18523 msm_routing_get_port_mixer,
18524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018525 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18526 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018527 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18528 msm_routing_get_port_mixer,
18529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018530 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18531 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018532 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18533 msm_routing_get_port_mixer,
18534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018535 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18536 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018537 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18538 msm_routing_get_port_mixer,
18539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018540 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18541 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018542 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18543 msm_routing_get_port_mixer,
18544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018545 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18546 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018547 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18548 msm_routing_get_port_mixer,
18549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018550 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18551 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018552 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18553 msm_routing_get_port_mixer,
18554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018555 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18556 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018557 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18558 msm_routing_get_port_mixer,
18559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018560 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18561 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018562 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18563 msm_routing_get_port_mixer,
18564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018565 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18566 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018567 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18568 msm_routing_get_port_mixer,
18569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018570 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18571 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018572 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18573 msm_routing_get_port_mixer,
18574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018575 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18576 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018577 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18578 msm_routing_get_port_mixer,
18579 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018580 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18581 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18582 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18583 msm_routing_get_port_mixer,
18584 msm_routing_put_port_mixer),
18585 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18586 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18587 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18588 msm_routing_get_port_mixer,
18589 msm_routing_put_port_mixer),
18590 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18591 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18592 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18593 msm_routing_get_port_mixer,
18594 msm_routing_put_port_mixer),
18595 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18596 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18597 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18598 msm_routing_get_port_mixer,
18599 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018600};
18601
18602static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018603 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18604 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018605 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18606 msm_routing_get_port_mixer,
18607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018608 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18609 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018610 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18611 msm_routing_get_port_mixer,
18612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018613 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18614 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018615 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18616 msm_routing_get_port_mixer,
18617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018618 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18619 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018620 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18621 msm_routing_get_port_mixer,
18622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018623 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18624 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018625 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18626 msm_routing_get_port_mixer,
18627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018628 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18629 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018630 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18631 msm_routing_get_port_mixer,
18632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018633 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18634 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018635 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18636 msm_routing_get_port_mixer,
18637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018638 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18639 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018640 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18641 msm_routing_get_port_mixer,
18642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018643 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18644 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018645 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18646 msm_routing_get_port_mixer,
18647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018648 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18649 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018650 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18651 msm_routing_get_port_mixer,
18652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018653 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18654 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018655 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18656 msm_routing_get_port_mixer,
18657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018658 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18659 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018660 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18661 msm_routing_get_port_mixer,
18662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018663 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18664 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018665 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18666 msm_routing_get_port_mixer,
18667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018668 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18669 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018670 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18671 msm_routing_get_port_mixer,
18672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018673 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18674 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018675 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18676 msm_routing_get_port_mixer,
18677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018678 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18679 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018680 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18681 msm_routing_get_port_mixer,
18682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018683 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18684 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018685 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18686 msm_routing_get_port_mixer,
18687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018688 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18689 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018690 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18691 msm_routing_get_port_mixer,
18692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018693 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18694 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018695 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18696 msm_routing_get_port_mixer,
18697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018698 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18699 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018700 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18701 msm_routing_get_port_mixer,
18702 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018703 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18704 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18705 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18706 msm_routing_get_port_mixer,
18707 msm_routing_put_port_mixer),
18708 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18709 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18710 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18711 msm_routing_get_port_mixer,
18712 msm_routing_put_port_mixer),
18713 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18714 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18715 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18716 msm_routing_get_port_mixer,
18717 msm_routing_put_port_mixer),
18718 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18719 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18720 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18721 msm_routing_get_port_mixer,
18722 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018723};
18724
18725static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018726 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18727 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018728 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18729 msm_routing_get_port_mixer,
18730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018731 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18732 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018733 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18734 msm_routing_get_port_mixer,
18735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018736 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18737 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018738 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18739 msm_routing_get_port_mixer,
18740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018741 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18742 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018743 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18744 msm_routing_get_port_mixer,
18745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018746 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18747 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018748 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18749 msm_routing_get_port_mixer,
18750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018751 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18752 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018753 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18754 msm_routing_get_port_mixer,
18755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018756 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18757 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018758 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18759 msm_routing_get_port_mixer,
18760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018761 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18762 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018763 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18764 msm_routing_get_port_mixer,
18765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018766 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18767 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018768 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18769 msm_routing_get_port_mixer,
18770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018771 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18772 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018773 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18774 msm_routing_get_port_mixer,
18775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018776 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18777 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018778 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18779 msm_routing_get_port_mixer,
18780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018781 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18782 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018783 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18784 msm_routing_get_port_mixer,
18785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018786 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18787 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018788 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18789 msm_routing_get_port_mixer,
18790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018791 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18792 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018793 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18794 msm_routing_get_port_mixer,
18795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018796 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18797 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018798 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18799 msm_routing_get_port_mixer,
18800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018801 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18802 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018803 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18804 msm_routing_get_port_mixer,
18805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018806 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18807 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018808 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18809 msm_routing_get_port_mixer,
18810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018811 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18812 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018813 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18814 msm_routing_get_port_mixer,
18815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018816 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18817 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018818 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18819 msm_routing_get_port_mixer,
18820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018821 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18822 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018823 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18824 msm_routing_get_port_mixer,
18825 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018826 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18827 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18828 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18829 msm_routing_get_port_mixer,
18830 msm_routing_put_port_mixer),
18831 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18832 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18833 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18834 msm_routing_get_port_mixer,
18835 msm_routing_put_port_mixer),
18836 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18837 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18838 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18839 msm_routing_get_port_mixer,
18840 msm_routing_put_port_mixer),
18841 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18842 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18843 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18844 msm_routing_get_port_mixer,
18845 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018846};
18847
18848static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018849 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18850 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018851 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18852 msm_routing_get_port_mixer,
18853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018854 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18855 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018856 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18857 msm_routing_get_port_mixer,
18858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018859 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18860 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018861 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18862 msm_routing_get_port_mixer,
18863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018864 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18865 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018866 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18867 msm_routing_get_port_mixer,
18868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018869 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18870 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018871 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18872 msm_routing_get_port_mixer,
18873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018874 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18875 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018876 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18877 msm_routing_get_port_mixer,
18878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018879 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18880 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018881 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18882 msm_routing_get_port_mixer,
18883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018884 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18885 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018886 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18887 msm_routing_get_port_mixer,
18888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018889 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18890 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018891 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18892 msm_routing_get_port_mixer,
18893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018894 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18895 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018896 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18897 msm_routing_get_port_mixer,
18898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018899 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18900 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018901 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18902 msm_routing_get_port_mixer,
18903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018904 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18905 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018906 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18907 msm_routing_get_port_mixer,
18908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018909 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18910 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018911 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18912 msm_routing_get_port_mixer,
18913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018914 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18915 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018916 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18917 msm_routing_get_port_mixer,
18918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018919 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18920 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018921 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18922 msm_routing_get_port_mixer,
18923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018924 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18925 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018926 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18927 msm_routing_get_port_mixer,
18928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018929 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18930 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018931 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18932 msm_routing_get_port_mixer,
18933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018934 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18935 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018936 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18937 msm_routing_get_port_mixer,
18938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018939 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18940 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018941 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18942 msm_routing_get_port_mixer,
18943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018944 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18945 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018946 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18947 msm_routing_get_port_mixer,
18948 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018949 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18950 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18951 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18952 msm_routing_get_port_mixer,
18953 msm_routing_put_port_mixer),
18954 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18955 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18956 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18957 msm_routing_get_port_mixer,
18958 msm_routing_put_port_mixer),
18959 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18960 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18961 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18962 msm_routing_get_port_mixer,
18963 msm_routing_put_port_mixer),
18964 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18965 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18966 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18967 msm_routing_get_port_mixer,
18968 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018969};
18970
18971static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018972 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18973 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018974 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18975 msm_routing_get_port_mixer,
18976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018977 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18978 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018979 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18980 msm_routing_get_port_mixer,
18981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018982 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18983 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018984 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18985 msm_routing_get_port_mixer,
18986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018987 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18988 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018989 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18990 msm_routing_get_port_mixer,
18991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018992 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18993 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018994 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18995 msm_routing_get_port_mixer,
18996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018997 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18998 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018999 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19000 msm_routing_get_port_mixer,
19001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019002 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19003 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019004 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19005 msm_routing_get_port_mixer,
19006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019007 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19008 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019009 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19010 msm_routing_get_port_mixer,
19011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019012 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
19013 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019014 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
19015 msm_routing_get_port_mixer,
19016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019017 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
19018 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019019 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
19020 msm_routing_get_port_mixer,
19021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019022 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
19023 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019024 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
19025 msm_routing_get_port_mixer,
19026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019027 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
19028 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019029 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
19030 msm_routing_get_port_mixer,
19031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019032 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19033 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019034 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19035 msm_routing_get_port_mixer,
19036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019037 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19038 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019039 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19040 msm_routing_get_port_mixer,
19041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019042 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19043 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019044 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19045 msm_routing_get_port_mixer,
19046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019047 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19048 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019049 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19050 msm_routing_get_port_mixer,
19051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019052 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19053 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019054 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19055 msm_routing_get_port_mixer,
19056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019057 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19058 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019059 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19060 msm_routing_get_port_mixer,
19061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019062 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19063 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019064 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19065 msm_routing_get_port_mixer,
19066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019067 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19068 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019069 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19070 msm_routing_get_port_mixer,
19071 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019072 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19073 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19074 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19075 msm_routing_get_port_mixer,
19076 msm_routing_put_port_mixer),
19077 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19078 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19079 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19080 msm_routing_get_port_mixer,
19081 msm_routing_put_port_mixer),
19082 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19083 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19084 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19085 msm_routing_get_port_mixer,
19086 msm_routing_put_port_mixer),
19087 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19088 MSM_BACKEND_DAI_SEC_TDM_RX_3,
19089 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19090 msm_routing_get_port_mixer,
19091 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019092};
19093
Derek Chenfdcc0982018-10-02 15:14:03 -070019094static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
19095 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
19096 MSM_BACKEND_DAI_SEC_TDM_RX_7,
19097 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
19098 msm_routing_get_port_mixer,
19099 msm_routing_put_port_mixer),
19100};
19101
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019102static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019103 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19104 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019105 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19106 msm_routing_get_port_mixer,
19107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019108 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19109 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019110 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19111 msm_routing_get_port_mixer,
19112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019113 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19114 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019115 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19116 msm_routing_get_port_mixer,
19117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019118 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19119 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019120 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19121 msm_routing_get_port_mixer,
19122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019123 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19124 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019125 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19126 msm_routing_get_port_mixer,
19127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019128 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19129 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019130 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19131 msm_routing_get_port_mixer,
19132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019133 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19134 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019135 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19136 msm_routing_get_port_mixer,
19137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019138 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19139 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019140 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19141 msm_routing_get_port_mixer,
19142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019143 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19144 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019145 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19146 msm_routing_get_port_mixer,
19147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019148 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19149 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019150 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19151 msm_routing_get_port_mixer,
19152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019153 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19154 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019155 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19156 msm_routing_get_port_mixer,
19157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019158 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19159 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019160 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19161 msm_routing_get_port_mixer,
19162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019163 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19164 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019165 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19166 msm_routing_get_port_mixer,
19167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019168 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19169 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019170 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19171 msm_routing_get_port_mixer,
19172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019173 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19174 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019175 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19176 msm_routing_get_port_mixer,
19177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019178 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19179 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019180 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19181 msm_routing_get_port_mixer,
19182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019183 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19184 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019185 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19186 msm_routing_get_port_mixer,
19187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019188 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19189 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019190 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19191 msm_routing_get_port_mixer,
19192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019193 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19194 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019195 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19196 msm_routing_get_port_mixer,
19197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019198 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19199 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019200 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19201 msm_routing_get_port_mixer,
19202 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019203 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19204 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19205 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19206 msm_routing_get_port_mixer,
19207 msm_routing_put_port_mixer),
19208 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19209 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19210 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19211 msm_routing_get_port_mixer,
19212 msm_routing_put_port_mixer),
19213 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19214 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19215 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19216 msm_routing_get_port_mixer,
19217 msm_routing_put_port_mixer),
19218 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19219 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19220 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19221 msm_routing_get_port_mixer,
19222 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019223};
19224
19225static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019226 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19227 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019228 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19229 msm_routing_get_port_mixer,
19230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019231 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19232 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019233 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19234 msm_routing_get_port_mixer,
19235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019236 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19237 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019238 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19239 msm_routing_get_port_mixer,
19240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019241 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19242 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019243 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19244 msm_routing_get_port_mixer,
19245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019246 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19247 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019248 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19249 msm_routing_get_port_mixer,
19250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019251 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19252 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019253 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19254 msm_routing_get_port_mixer,
19255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019256 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19257 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019258 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19259 msm_routing_get_port_mixer,
19260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019261 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19262 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019263 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19264 msm_routing_get_port_mixer,
19265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019266 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19267 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019268 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19269 msm_routing_get_port_mixer,
19270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019271 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19272 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019273 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19274 msm_routing_get_port_mixer,
19275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019276 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19277 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019278 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19279 msm_routing_get_port_mixer,
19280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019281 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19282 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019283 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19284 msm_routing_get_port_mixer,
19285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019286 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19287 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019288 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19289 msm_routing_get_port_mixer,
19290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019291 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19292 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019293 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19294 msm_routing_get_port_mixer,
19295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019296 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19297 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019298 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19299 msm_routing_get_port_mixer,
19300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019301 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19302 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019303 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19304 msm_routing_get_port_mixer,
19305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019306 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19307 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019308 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19309 msm_routing_get_port_mixer,
19310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019311 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19312 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019313 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19314 msm_routing_get_port_mixer,
19315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019316 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19317 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019318 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19319 msm_routing_get_port_mixer,
19320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019321 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19322 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019323 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19324 msm_routing_get_port_mixer,
19325 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019326 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19327 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19328 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19329 msm_routing_get_port_mixer,
19330 msm_routing_put_port_mixer),
19331 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19332 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19333 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19334 msm_routing_get_port_mixer,
19335 msm_routing_put_port_mixer),
19336 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19337 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19338 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19339 msm_routing_get_port_mixer,
19340 msm_routing_put_port_mixer),
19341 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19342 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19343 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19344 msm_routing_get_port_mixer,
19345 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019346};
19347
19348static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019349 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19350 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019351 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19352 msm_routing_get_port_mixer,
19353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019354 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19355 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019356 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19357 msm_routing_get_port_mixer,
19358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019359 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19360 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019361 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19362 msm_routing_get_port_mixer,
19363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019364 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19365 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019366 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19367 msm_routing_get_port_mixer,
19368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019369 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19370 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019371 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19372 msm_routing_get_port_mixer,
19373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019374 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19375 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019376 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19377 msm_routing_get_port_mixer,
19378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019379 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19380 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019381 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19382 msm_routing_get_port_mixer,
19383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019384 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19385 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019386 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19387 msm_routing_get_port_mixer,
19388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019389 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19390 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019391 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19392 msm_routing_get_port_mixer,
19393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019394 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19395 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019396 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19397 msm_routing_get_port_mixer,
19398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019399 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19400 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019401 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19402 msm_routing_get_port_mixer,
19403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019404 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19405 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019406 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19407 msm_routing_get_port_mixer,
19408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019409 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19410 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019411 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19412 msm_routing_get_port_mixer,
19413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019414 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19415 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019416 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19417 msm_routing_get_port_mixer,
19418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019419 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19420 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019421 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19422 msm_routing_get_port_mixer,
19423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019424 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19425 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019426 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19427 msm_routing_get_port_mixer,
19428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019429 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19430 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019431 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19432 msm_routing_get_port_mixer,
19433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019434 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19435 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019436 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19437 msm_routing_get_port_mixer,
19438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019439 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19440 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019441 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19442 msm_routing_get_port_mixer,
19443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019444 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19445 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019446 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19447 msm_routing_get_port_mixer,
19448 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019449 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19450 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19451 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19452 msm_routing_get_port_mixer,
19453 msm_routing_put_port_mixer),
19454 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19455 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19456 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19457 msm_routing_get_port_mixer,
19458 msm_routing_put_port_mixer),
19459 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19460 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19461 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19462 msm_routing_get_port_mixer,
19463 msm_routing_put_port_mixer),
19464 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19465 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19466 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19467 msm_routing_get_port_mixer,
19468 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019469};
19470
19471static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019472 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19473 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019474 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19475 msm_routing_get_port_mixer,
19476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019477 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19478 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019479 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19480 msm_routing_get_port_mixer,
19481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019482 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19483 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019484 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19485 msm_routing_get_port_mixer,
19486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019487 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19488 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019489 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19490 msm_routing_get_port_mixer,
19491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019492 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19493 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019494 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19495 msm_routing_get_port_mixer,
19496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019497 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19498 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019499 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19500 msm_routing_get_port_mixer,
19501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019502 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19503 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019504 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19505 msm_routing_get_port_mixer,
19506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019507 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19508 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019509 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19510 msm_routing_get_port_mixer,
19511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019512 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19513 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019514 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19515 msm_routing_get_port_mixer,
19516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019517 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19518 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019519 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19520 msm_routing_get_port_mixer,
19521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019522 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19523 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019524 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19525 msm_routing_get_port_mixer,
19526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019527 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19528 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019529 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19530 msm_routing_get_port_mixer,
19531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019532 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19533 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019534 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19535 msm_routing_get_port_mixer,
19536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019537 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19538 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019539 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19540 msm_routing_get_port_mixer,
19541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019542 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19543 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019544 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19545 msm_routing_get_port_mixer,
19546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019547 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19548 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019549 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19550 msm_routing_get_port_mixer,
19551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019552 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19553 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019554 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19555 msm_routing_get_port_mixer,
19556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019557 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19558 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019559 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19560 msm_routing_get_port_mixer,
19561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019562 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19563 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019564 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19565 msm_routing_get_port_mixer,
19566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019567 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19568 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019569 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19570 msm_routing_get_port_mixer,
19571 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019572 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19573 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19574 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19575 msm_routing_get_port_mixer,
19576 msm_routing_put_port_mixer),
19577 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19578 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19579 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19580 msm_routing_get_port_mixer,
19581 msm_routing_put_port_mixer),
19582 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19583 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19584 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19585 msm_routing_get_port_mixer,
19586 msm_routing_put_port_mixer),
19587 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19588 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19589 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19590 msm_routing_get_port_mixer,
19591 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019592};
19593
19594static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019595 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19596 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019597 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19598 msm_routing_get_port_mixer,
19599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019600 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19601 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019602 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19603 msm_routing_get_port_mixer,
19604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019605 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19606 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019607 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19608 msm_routing_get_port_mixer,
19609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019610 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19611 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019612 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19613 msm_routing_get_port_mixer,
19614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019615 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19616 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019617 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19618 msm_routing_get_port_mixer,
19619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019620 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19621 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019622 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19623 msm_routing_get_port_mixer,
19624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019625 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19626 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019627 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19628 msm_routing_get_port_mixer,
19629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019630 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19631 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019632 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19633 msm_routing_get_port_mixer,
19634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019635 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19636 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019637 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19638 msm_routing_get_port_mixer,
19639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019640 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19641 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019642 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19643 msm_routing_get_port_mixer,
19644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019645 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19646 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019647 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19648 msm_routing_get_port_mixer,
19649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019650 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19651 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019652 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19653 msm_routing_get_port_mixer,
19654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019655 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19656 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019657 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19658 msm_routing_get_port_mixer,
19659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019660 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19661 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019662 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19663 msm_routing_get_port_mixer,
19664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019665 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19666 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019667 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19668 msm_routing_get_port_mixer,
19669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019670 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19671 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019672 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19673 msm_routing_get_port_mixer,
19674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019675 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19676 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019677 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19678 msm_routing_get_port_mixer,
19679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019680 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19681 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019682 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19683 msm_routing_get_port_mixer,
19684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019685 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19686 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019687 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19688 msm_routing_get_port_mixer,
19689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019690 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19691 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019692 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19693 msm_routing_get_port_mixer,
19694 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019695 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19696 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19697 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19698 msm_routing_get_port_mixer,
19699 msm_routing_put_port_mixer),
19700 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19701 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19702 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19703 msm_routing_get_port_mixer,
19704 msm_routing_put_port_mixer),
19705 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19706 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19707 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19708 msm_routing_get_port_mixer,
19709 msm_routing_put_port_mixer),
19710 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19711 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19712 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19713 msm_routing_get_port_mixer,
19714 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019715};
19716
19717static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019718 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19719 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019720 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19721 msm_routing_get_port_mixer,
19722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019723 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19724 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019725 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19726 msm_routing_get_port_mixer,
19727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019728 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19729 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019730 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19731 msm_routing_get_port_mixer,
19732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019733 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19734 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019735 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19736 msm_routing_get_port_mixer,
19737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019738 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19739 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019740 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19741 msm_routing_get_port_mixer,
19742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019743 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19744 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019745 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19746 msm_routing_get_port_mixer,
19747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019748 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19749 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019750 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19751 msm_routing_get_port_mixer,
19752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019753 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19754 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019755 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19756 msm_routing_get_port_mixer,
19757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019758 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19759 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019760 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19761 msm_routing_get_port_mixer,
19762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019763 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19764 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019765 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19766 msm_routing_get_port_mixer,
19767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019768 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19769 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019770 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19771 msm_routing_get_port_mixer,
19772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019773 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19774 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019775 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19776 msm_routing_get_port_mixer,
19777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019778 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19779 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019780 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19781 msm_routing_get_port_mixer,
19782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019783 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19784 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019785 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19786 msm_routing_get_port_mixer,
19787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019788 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19789 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019790 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19791 msm_routing_get_port_mixer,
19792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019793 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19794 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019795 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19796 msm_routing_get_port_mixer,
19797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019798 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19799 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019800 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19801 msm_routing_get_port_mixer,
19802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019803 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19804 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019805 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19806 msm_routing_get_port_mixer,
19807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019808 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19809 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019810 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19811 msm_routing_get_port_mixer,
19812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019813 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19814 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019815 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19816 msm_routing_get_port_mixer,
19817 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019818 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19819 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19820 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19821 msm_routing_get_port_mixer,
19822 msm_routing_put_port_mixer),
19823 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19824 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19825 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19826 msm_routing_get_port_mixer,
19827 msm_routing_put_port_mixer),
19828 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19829 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19830 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19831 msm_routing_get_port_mixer,
19832 msm_routing_put_port_mixer),
19833 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19834 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19835 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19836 msm_routing_get_port_mixer,
19837 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019838};
19839
19840static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019841 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19842 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019843 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19844 msm_routing_get_port_mixer,
19845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019846 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19847 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019848 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19849 msm_routing_get_port_mixer,
19850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019851 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19852 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019853 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19854 msm_routing_get_port_mixer,
19855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019856 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19857 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019858 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19859 msm_routing_get_port_mixer,
19860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019861 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19862 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019863 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19864 msm_routing_get_port_mixer,
19865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019866 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19867 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019868 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19869 msm_routing_get_port_mixer,
19870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019871 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19872 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019873 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19874 msm_routing_get_port_mixer,
19875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019876 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19877 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019878 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19879 msm_routing_get_port_mixer,
19880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019881 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19882 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019883 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19884 msm_routing_get_port_mixer,
19885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019886 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19887 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019888 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19889 msm_routing_get_port_mixer,
19890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019891 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19892 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019893 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19894 msm_routing_get_port_mixer,
19895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019896 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19897 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019898 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19899 msm_routing_get_port_mixer,
19900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019901 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19902 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019903 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19904 msm_routing_get_port_mixer,
19905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019906 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19907 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019908 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19909 msm_routing_get_port_mixer,
19910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019911 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19912 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019913 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19914 msm_routing_get_port_mixer,
19915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019916 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19917 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019918 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19919 msm_routing_get_port_mixer,
19920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019921 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19922 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019923 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19924 msm_routing_get_port_mixer,
19925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019926 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19927 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019928 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19929 msm_routing_get_port_mixer,
19930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019931 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19932 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019933 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19934 msm_routing_get_port_mixer,
19935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019936 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19937 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019938 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19939 msm_routing_get_port_mixer,
19940 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019941 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19942 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19943 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19944 msm_routing_get_port_mixer,
19945 msm_routing_put_port_mixer),
19946 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19947 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19948 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19949 msm_routing_get_port_mixer,
19950 msm_routing_put_port_mixer),
19951 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19952 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19953 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19954 msm_routing_get_port_mixer,
19955 msm_routing_put_port_mixer),
19956 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19957 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19958 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19959 msm_routing_get_port_mixer,
19960 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019961};
19962
19963static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019964 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19965 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019966 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19967 msm_routing_get_port_mixer,
19968 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019969 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19970 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019971 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19972 msm_routing_get_port_mixer,
19973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019974 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19975 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019976 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19977 msm_routing_get_port_mixer,
19978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019979 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19980 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019981 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19982 msm_routing_get_port_mixer,
19983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019984 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19985 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019986 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19987 msm_routing_get_port_mixer,
19988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019989 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19990 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019991 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19992 msm_routing_get_port_mixer,
19993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019994 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19995 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019996 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19997 msm_routing_get_port_mixer,
19998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019999 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20000 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020001 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20002 msm_routing_get_port_mixer,
20003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020004 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20005 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020006 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20007 msm_routing_get_port_mixer,
20008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020009 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20010 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020011 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20012 msm_routing_get_port_mixer,
20013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020014 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20015 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020016 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20017 msm_routing_get_port_mixer,
20018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020019 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20020 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020021 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20022 msm_routing_get_port_mixer,
20023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020024 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20025 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020026 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20027 msm_routing_get_port_mixer,
20028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020029 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20030 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020031 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20032 msm_routing_get_port_mixer,
20033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020034 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20035 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020036 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20037 msm_routing_get_port_mixer,
20038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020039 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20040 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020041 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20042 msm_routing_get_port_mixer,
20043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020044 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20045 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020046 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20047 msm_routing_get_port_mixer,
20048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020049 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20050 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020051 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20052 msm_routing_get_port_mixer,
20053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020054 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20055 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020056 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20057 msm_routing_get_port_mixer,
20058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020059 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20060 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020061 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20062 msm_routing_get_port_mixer,
20063 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020064 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20065 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20066 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20067 msm_routing_get_port_mixer,
20068 msm_routing_put_port_mixer),
20069 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20070 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20071 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20072 msm_routing_get_port_mixer,
20073 msm_routing_put_port_mixer),
20074 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20075 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20076 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20077 msm_routing_get_port_mixer,
20078 msm_routing_put_port_mixer),
20079 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20080 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
20081 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20082 msm_routing_get_port_mixer,
20083 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020084};
20085
Derek Chenb9048cb2019-03-07 14:54:13 -050020086static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
20087 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20088 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
20089 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20090 msm_routing_get_port_mixer,
20091 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070020092 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20093 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
20094 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20095 msm_routing_get_port_mixer,
20096 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050020097};
20098
Rohit Kumara5077932017-09-10 22:05:05 +053020099static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020100 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20101 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020102 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20103 msm_routing_get_port_mixer,
20104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020105 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20106 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020107 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20108 msm_routing_get_port_mixer,
20109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020110 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20111 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020112 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20113 msm_routing_get_port_mixer,
20114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020115 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20116 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020117 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20118 msm_routing_get_port_mixer,
20119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020120 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20121 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020122 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20123 msm_routing_get_port_mixer,
20124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020125 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20126 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020127 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20128 msm_routing_get_port_mixer,
20129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020130 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20131 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020132 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20133 msm_routing_get_port_mixer,
20134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020135 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20136 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020137 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20138 msm_routing_get_port_mixer,
20139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020140 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20141 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020142 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20143 msm_routing_get_port_mixer,
20144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020145 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20146 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020147 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20148 msm_routing_get_port_mixer,
20149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020150 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20151 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020152 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20153 msm_routing_get_port_mixer,
20154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020155 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20156 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020157 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20158 msm_routing_get_port_mixer,
20159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020160 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20161 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020162 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20163 msm_routing_get_port_mixer,
20164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020165 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20166 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020167 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20168 msm_routing_get_port_mixer,
20169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020170 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20171 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020172 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20173 msm_routing_get_port_mixer,
20174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020175 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20176 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020177 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20178 msm_routing_get_port_mixer,
20179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020180 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20181 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020182 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20183 msm_routing_get_port_mixer,
20184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020185 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20186 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020187 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20188 msm_routing_get_port_mixer,
20189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020190 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20191 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020192 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20193 msm_routing_get_port_mixer,
20194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020195 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20196 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053020197 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20198 msm_routing_get_port_mixer,
20199 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020200 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20201 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20202 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20203 msm_routing_get_port_mixer,
20204 msm_routing_put_port_mixer),
20205 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20206 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20207 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20208 msm_routing_get_port_mixer,
20209 msm_routing_put_port_mixer),
20210 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20211 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20212 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20213 msm_routing_get_port_mixer,
20214 msm_routing_put_port_mixer),
20215 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20216 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20217 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20218 msm_routing_get_port_mixer,
20219 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020220};
20221
20222static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020223 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20224 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020225 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20226 msm_routing_get_port_mixer,
20227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020228 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20229 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020230 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20231 msm_routing_get_port_mixer,
20232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020233 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20234 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020235 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20236 msm_routing_get_port_mixer,
20237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020238 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20239 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020240 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20241 msm_routing_get_port_mixer,
20242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020243 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20244 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020245 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20246 msm_routing_get_port_mixer,
20247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020248 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20249 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020250 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20251 msm_routing_get_port_mixer,
20252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020253 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20254 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020255 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20256 msm_routing_get_port_mixer,
20257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020258 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20259 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020260 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20261 msm_routing_get_port_mixer,
20262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020263 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20264 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020265 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20266 msm_routing_get_port_mixer,
20267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020268 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20269 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020270 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20271 msm_routing_get_port_mixer,
20272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020273 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20274 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020275 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20276 msm_routing_get_port_mixer,
20277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020278 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20279 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020280 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20281 msm_routing_get_port_mixer,
20282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020283 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20284 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020285 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20286 msm_routing_get_port_mixer,
20287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020288 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20289 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020290 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20291 msm_routing_get_port_mixer,
20292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020293 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20294 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020295 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20296 msm_routing_get_port_mixer,
20297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020298 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20299 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020300 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20301 msm_routing_get_port_mixer,
20302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020303 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20304 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020305 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20306 msm_routing_get_port_mixer,
20307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020308 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20309 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020310 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20311 msm_routing_get_port_mixer,
20312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020313 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20314 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020315 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20316 msm_routing_get_port_mixer,
20317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020318 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20319 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020320 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20321 msm_routing_get_port_mixer,
20322 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020323 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20324 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20325 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20326 msm_routing_get_port_mixer,
20327 msm_routing_put_port_mixer),
20328 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20329 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20330 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20331 msm_routing_get_port_mixer,
20332 msm_routing_put_port_mixer),
20333 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20334 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20335 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20336 msm_routing_get_port_mixer,
20337 msm_routing_put_port_mixer),
20338 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20339 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20340 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20341 msm_routing_get_port_mixer,
20342 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020343};
20344
20345static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020346 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20347 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020348 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20349 msm_routing_get_port_mixer,
20350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020351 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20352 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020353 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20354 msm_routing_get_port_mixer,
20355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020356 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20357 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020358 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20359 msm_routing_get_port_mixer,
20360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020361 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20362 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020363 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20364 msm_routing_get_port_mixer,
20365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020366 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20367 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020368 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20369 msm_routing_get_port_mixer,
20370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020371 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20372 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020373 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20374 msm_routing_get_port_mixer,
20375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020376 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20377 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020378 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20379 msm_routing_get_port_mixer,
20380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020381 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20382 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020383 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20384 msm_routing_get_port_mixer,
20385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020386 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20387 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020388 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20389 msm_routing_get_port_mixer,
20390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020391 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20392 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020393 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20394 msm_routing_get_port_mixer,
20395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020396 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20397 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020398 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20399 msm_routing_get_port_mixer,
20400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020401 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20402 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020403 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20404 msm_routing_get_port_mixer,
20405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020406 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20407 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020408 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20409 msm_routing_get_port_mixer,
20410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020411 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20412 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020413 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20414 msm_routing_get_port_mixer,
20415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020416 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20417 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020418 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20419 msm_routing_get_port_mixer,
20420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020421 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20422 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020423 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20424 msm_routing_get_port_mixer,
20425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020426 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20427 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020428 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20429 msm_routing_get_port_mixer,
20430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020431 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20432 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020433 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20434 msm_routing_get_port_mixer,
20435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020436 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20437 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020438 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20439 msm_routing_get_port_mixer,
20440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020441 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20442 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020443 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20444 msm_routing_get_port_mixer,
20445 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020446 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20447 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20448 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20449 msm_routing_get_port_mixer,
20450 msm_routing_put_port_mixer),
20451 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20452 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20453 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20454 msm_routing_get_port_mixer,
20455 msm_routing_put_port_mixer),
20456 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20457 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20458 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20459 msm_routing_get_port_mixer,
20460 msm_routing_put_port_mixer),
20461 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20462 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20463 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20464 msm_routing_get_port_mixer,
20465 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020466};
20467
20468static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020469 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20470 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020471 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20472 msm_routing_get_port_mixer,
20473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020474 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20475 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020476 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20477 msm_routing_get_port_mixer,
20478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020479 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20480 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020481 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20482 msm_routing_get_port_mixer,
20483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020484 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20485 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020486 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20487 msm_routing_get_port_mixer,
20488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020489 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20490 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020491 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20492 msm_routing_get_port_mixer,
20493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020494 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20495 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020496 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20497 msm_routing_get_port_mixer,
20498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020499 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20500 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020501 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20502 msm_routing_get_port_mixer,
20503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020504 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20505 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020506 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20507 msm_routing_get_port_mixer,
20508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020509 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20510 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020511 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20512 msm_routing_get_port_mixer,
20513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020514 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20515 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020516 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20517 msm_routing_get_port_mixer,
20518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020519 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20520 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020521 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20522 msm_routing_get_port_mixer,
20523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020524 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20525 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020526 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20527 msm_routing_get_port_mixer,
20528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020529 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20530 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020531 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20532 msm_routing_get_port_mixer,
20533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020534 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20535 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020536 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20537 msm_routing_get_port_mixer,
20538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020539 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20540 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020541 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20542 msm_routing_get_port_mixer,
20543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020544 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20545 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020546 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20547 msm_routing_get_port_mixer,
20548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020549 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20550 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020551 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20552 msm_routing_get_port_mixer,
20553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020554 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20555 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020556 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20557 msm_routing_get_port_mixer,
20558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020559 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20560 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020561 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20562 msm_routing_get_port_mixer,
20563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020564 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20565 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020566 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20567 msm_routing_get_port_mixer,
20568 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020569 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20570 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20571 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20572 msm_routing_get_port_mixer,
20573 msm_routing_put_port_mixer),
20574 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20575 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20576 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20577 msm_routing_get_port_mixer,
20578 msm_routing_put_port_mixer),
20579 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20580 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20581 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20582 msm_routing_get_port_mixer,
20583 msm_routing_put_port_mixer),
20584 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20585 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20586 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20587 msm_routing_get_port_mixer,
20588 msm_routing_put_port_mixer),
20589};
20590
20591static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
20592 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20593 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20594 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20595 msm_routing_get_port_mixer,
20596 msm_routing_put_port_mixer),
20597 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20598 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20599 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20600 msm_routing_get_port_mixer,
20601 msm_routing_put_port_mixer),
20602 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20603 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20604 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20605 msm_routing_get_port_mixer,
20606 msm_routing_put_port_mixer),
20607 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20608 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20609 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20610 msm_routing_get_port_mixer,
20611 msm_routing_put_port_mixer),
20612 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20613 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20614 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20615 msm_routing_get_port_mixer,
20616 msm_routing_put_port_mixer),
20617 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20618 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20619 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20620 msm_routing_get_port_mixer,
20621 msm_routing_put_port_mixer),
20622 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20623 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20624 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20625 msm_routing_get_port_mixer,
20626 msm_routing_put_port_mixer),
20627 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20628 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20629 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20630 msm_routing_get_port_mixer,
20631 msm_routing_put_port_mixer),
20632 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20633 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20634 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20635 msm_routing_get_port_mixer,
20636 msm_routing_put_port_mixer),
20637 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20638 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20639 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20640 msm_routing_get_port_mixer,
20641 msm_routing_put_port_mixer),
20642 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20643 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20644 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20645 msm_routing_get_port_mixer,
20646 msm_routing_put_port_mixer),
20647 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20648 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20649 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20650 msm_routing_get_port_mixer,
20651 msm_routing_put_port_mixer),
20652 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20653 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20654 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20655 msm_routing_get_port_mixer,
20656 msm_routing_put_port_mixer),
20657 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20658 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20659 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20660 msm_routing_get_port_mixer,
20661 msm_routing_put_port_mixer),
20662 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20663 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20664 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20665 msm_routing_get_port_mixer,
20666 msm_routing_put_port_mixer),
20667 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20668 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20669 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20670 msm_routing_get_port_mixer,
20671 msm_routing_put_port_mixer),
20672 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20673 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20674 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20675 msm_routing_get_port_mixer,
20676 msm_routing_put_port_mixer),
20677 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20678 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20679 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20680 msm_routing_get_port_mixer,
20681 msm_routing_put_port_mixer),
20682 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20683 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20684 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20685 msm_routing_get_port_mixer,
20686 msm_routing_put_port_mixer),
20687 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20688 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20689 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20690 msm_routing_get_port_mixer,
20691 msm_routing_put_port_mixer),
20692 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20693 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20694 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20695 msm_routing_get_port_mixer,
20696 msm_routing_put_port_mixer),
20697 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20698 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20699 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20700 msm_routing_get_port_mixer,
20701 msm_routing_put_port_mixer),
20702 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20703 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20704 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20705 msm_routing_get_port_mixer,
20706 msm_routing_put_port_mixer),
20707 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20708 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20709 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20710 msm_routing_get_port_mixer,
20711 msm_routing_put_port_mixer),
20712};
20713
20714static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20715 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20716 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20717 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20718 msm_routing_get_port_mixer,
20719 msm_routing_put_port_mixer),
20720 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20721 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20722 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20723 msm_routing_get_port_mixer,
20724 msm_routing_put_port_mixer),
20725 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20726 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20727 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20728 msm_routing_get_port_mixer,
20729 msm_routing_put_port_mixer),
20730 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20731 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20732 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20733 msm_routing_get_port_mixer,
20734 msm_routing_put_port_mixer),
20735 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20736 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20737 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20738 msm_routing_get_port_mixer,
20739 msm_routing_put_port_mixer),
20740 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20741 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20742 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20743 msm_routing_get_port_mixer,
20744 msm_routing_put_port_mixer),
20745 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20746 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20747 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20748 msm_routing_get_port_mixer,
20749 msm_routing_put_port_mixer),
20750 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20751 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20752 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20753 msm_routing_get_port_mixer,
20754 msm_routing_put_port_mixer),
20755 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20756 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20757 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20758 msm_routing_get_port_mixer,
20759 msm_routing_put_port_mixer),
20760 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20761 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20762 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20763 msm_routing_get_port_mixer,
20764 msm_routing_put_port_mixer),
20765 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20766 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20767 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20768 msm_routing_get_port_mixer,
20769 msm_routing_put_port_mixer),
20770 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20771 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20772 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20773 msm_routing_get_port_mixer,
20774 msm_routing_put_port_mixer),
20775 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20776 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20777 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20778 msm_routing_get_port_mixer,
20779 msm_routing_put_port_mixer),
20780 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20781 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20782 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20783 msm_routing_get_port_mixer,
20784 msm_routing_put_port_mixer),
20785 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20786 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20787 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20788 msm_routing_get_port_mixer,
20789 msm_routing_put_port_mixer),
20790 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20791 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20792 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20793 msm_routing_get_port_mixer,
20794 msm_routing_put_port_mixer),
20795 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20796 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20797 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20798 msm_routing_get_port_mixer,
20799 msm_routing_put_port_mixer),
20800 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20801 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20802 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20803 msm_routing_get_port_mixer,
20804 msm_routing_put_port_mixer),
20805 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20806 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20807 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20808 msm_routing_get_port_mixer,
20809 msm_routing_put_port_mixer),
20810 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20811 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20812 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20813 msm_routing_get_port_mixer,
20814 msm_routing_put_port_mixer),
20815 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20816 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20817 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20818 msm_routing_get_port_mixer,
20819 msm_routing_put_port_mixer),
20820 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20821 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20822 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20823 msm_routing_get_port_mixer,
20824 msm_routing_put_port_mixer),
20825 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20826 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20827 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20828 msm_routing_get_port_mixer,
20829 msm_routing_put_port_mixer),
20830 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20831 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20832 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20833 msm_routing_get_port_mixer,
20834 msm_routing_put_port_mixer),
20835};
20836
20837static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20838 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20839 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20840 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20841 msm_routing_get_port_mixer,
20842 msm_routing_put_port_mixer),
20843 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20844 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20845 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20846 msm_routing_get_port_mixer,
20847 msm_routing_put_port_mixer),
20848 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20849 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20850 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20851 msm_routing_get_port_mixer,
20852 msm_routing_put_port_mixer),
20853 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20854 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20855 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20856 msm_routing_get_port_mixer,
20857 msm_routing_put_port_mixer),
20858 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20859 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20860 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20861 msm_routing_get_port_mixer,
20862 msm_routing_put_port_mixer),
20863 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20864 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20865 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20866 msm_routing_get_port_mixer,
20867 msm_routing_put_port_mixer),
20868 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20869 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20870 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20871 msm_routing_get_port_mixer,
20872 msm_routing_put_port_mixer),
20873 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20874 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20875 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20876 msm_routing_get_port_mixer,
20877 msm_routing_put_port_mixer),
20878 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20879 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20880 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20881 msm_routing_get_port_mixer,
20882 msm_routing_put_port_mixer),
20883 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20884 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20885 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20886 msm_routing_get_port_mixer,
20887 msm_routing_put_port_mixer),
20888 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20889 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20890 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20891 msm_routing_get_port_mixer,
20892 msm_routing_put_port_mixer),
20893 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20894 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20895 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20896 msm_routing_get_port_mixer,
20897 msm_routing_put_port_mixer),
20898 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20899 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20900 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20901 msm_routing_get_port_mixer,
20902 msm_routing_put_port_mixer),
20903 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20904 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20905 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20906 msm_routing_get_port_mixer,
20907 msm_routing_put_port_mixer),
20908 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20909 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20910 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20911 msm_routing_get_port_mixer,
20912 msm_routing_put_port_mixer),
20913 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20914 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20915 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20916 msm_routing_get_port_mixer,
20917 msm_routing_put_port_mixer),
20918 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20919 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20920 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20921 msm_routing_get_port_mixer,
20922 msm_routing_put_port_mixer),
20923 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20924 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20925 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20926 msm_routing_get_port_mixer,
20927 msm_routing_put_port_mixer),
20928 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20929 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20930 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20931 msm_routing_get_port_mixer,
20932 msm_routing_put_port_mixer),
20933 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20934 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20935 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20936 msm_routing_get_port_mixer,
20937 msm_routing_put_port_mixer),
20938 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20939 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20940 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20941 msm_routing_get_port_mixer,
20942 msm_routing_put_port_mixer),
20943 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20944 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20945 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20946 msm_routing_get_port_mixer,
20947 msm_routing_put_port_mixer),
20948 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20949 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20950 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20951 msm_routing_get_port_mixer,
20952 msm_routing_put_port_mixer),
20953 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20954 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20955 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20956 msm_routing_get_port_mixer,
20957 msm_routing_put_port_mixer),
20958};
20959
20960static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20961 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20962 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20963 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20964 msm_routing_get_port_mixer,
20965 msm_routing_put_port_mixer),
20966 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20967 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20968 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20969 msm_routing_get_port_mixer,
20970 msm_routing_put_port_mixer),
20971 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20972 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20973 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20974 msm_routing_get_port_mixer,
20975 msm_routing_put_port_mixer),
20976 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20977 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20978 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20979 msm_routing_get_port_mixer,
20980 msm_routing_put_port_mixer),
20981 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20982 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20983 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20984 msm_routing_get_port_mixer,
20985 msm_routing_put_port_mixer),
20986 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20987 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20988 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20989 msm_routing_get_port_mixer,
20990 msm_routing_put_port_mixer),
20991 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20992 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20993 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20994 msm_routing_get_port_mixer,
20995 msm_routing_put_port_mixer),
20996 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20997 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20998 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20999 msm_routing_get_port_mixer,
21000 msm_routing_put_port_mixer),
21001 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21002 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21003 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
21004 msm_routing_get_port_mixer,
21005 msm_routing_put_port_mixer),
21006 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
21007 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21008 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
21009 msm_routing_get_port_mixer,
21010 msm_routing_put_port_mixer),
21011 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
21012 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21013 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
21014 msm_routing_get_port_mixer,
21015 msm_routing_put_port_mixer),
21016 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
21017 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21018 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
21019 msm_routing_get_port_mixer,
21020 msm_routing_put_port_mixer),
21021 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
21022 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21023 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
21024 msm_routing_get_port_mixer,
21025 msm_routing_put_port_mixer),
21026 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
21027 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21028 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
21029 msm_routing_get_port_mixer,
21030 msm_routing_put_port_mixer),
21031 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
21032 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21033 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
21034 msm_routing_get_port_mixer,
21035 msm_routing_put_port_mixer),
21036 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
21037 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21038 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
21039 msm_routing_get_port_mixer,
21040 msm_routing_put_port_mixer),
21041 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21042 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21043 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
21044 msm_routing_get_port_mixer,
21045 msm_routing_put_port_mixer),
21046 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
21047 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21048 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
21049 msm_routing_get_port_mixer,
21050 msm_routing_put_port_mixer),
21051 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
21052 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21053 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
21054 msm_routing_get_port_mixer,
21055 msm_routing_put_port_mixer),
21056 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
21057 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21058 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
21059 msm_routing_get_port_mixer,
21060 msm_routing_put_port_mixer),
21061 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
21062 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21063 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
21064 msm_routing_get_port_mixer,
21065 msm_routing_put_port_mixer),
21066 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
21067 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21068 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
21069 msm_routing_get_port_mixer,
21070 msm_routing_put_port_mixer),
21071 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
21072 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21073 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
21074 msm_routing_get_port_mixer,
21075 msm_routing_put_port_mixer),
21076 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
21077 MSM_BACKEND_DAI_SEN_TDM_RX_3,
21078 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
21079 msm_routing_get_port_mixer,
21080 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021081};
21082
Han Lu7b6c5882019-06-09 16:03:21 +080021083static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070021084 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
21085 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21086 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
21087 msm_routing_get_port_mixer,
21088 msm_routing_put_port_mixer),
21089 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
21090 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21091 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
21092 msm_routing_get_port_mixer,
21093 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080021094 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
21095 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
21096 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
21097 msm_routing_get_port_mixer,
21098 msm_routing_put_port_mixer),
21099};
21100
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021101static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021102 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
21103 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021104 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021106 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21107 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021108 MSM_BACKEND_DAI_TERTIARY_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("SLIM_0_TX", SND_SOC_NOPM,
21111 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021112 MSM_BACKEND_DAI_SLIMBUS_0_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21115 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021116 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021118 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
21119 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053021120 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21121 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021122 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
21123 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
21124 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021126 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
21127 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021128 MSM_BACKEND_DAI_SECONDARY_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("SLIM_8_TX", SND_SOC_NOPM,
21131 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021132 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
21133 msm_routing_put_port_mixer),
21134};
21135
21136static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021137 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
21138 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021139 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021141 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
21142 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021143 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
21146 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021147 MSM_BACKEND_DAI_TERTIARY_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21150 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021151 MSM_BACKEND_DAI_QUATERNARY_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("QUIN_MI2S_TX", SND_SOC_NOPM,
21154 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053021155 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21156 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070021157 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
21158 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
21159 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
21160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021161 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
21162 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021163 MSM_BACKEND_DAI_SLIMBUS_0_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("INTERNAL_FM_TX", SND_SOC_NOPM,
21166 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021167 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
21168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021169 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
21170 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021171 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
21174 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021175 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
21176 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021177};
21178
21179static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021180 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21181 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021182 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21183 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021184 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21185 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21189 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21193 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21197 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21201 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21205 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21209 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021212 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21213 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21214 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21215 msm_routing_put_listen_mixer),
21216 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21217 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21218 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21219 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021220 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21221 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21222 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21223 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021224 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21225 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21226 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21227 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021228 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21229 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21230 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21231 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021232 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21233 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21234 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21235 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021236};
21237
21238static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021239 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21240 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021241 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21242 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021243 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
21244 SND_SOC_NOPM,
21245 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021246 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21247 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021248 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21249 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21253 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21257 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21261 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21265 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21269 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021272 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21273 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21274 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21275 msm_routing_put_listen_mixer),
21276 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21277 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21278 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21279 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021280 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21281 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21282 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21283 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021284 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21285 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21286 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21287 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021288 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21289 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21290 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21291 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021292 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21293 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21294 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21295 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021296};
21297
21298static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021299 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21300 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021301 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21302 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021303 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21304 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21308 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21312 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21316 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21320 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21324 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21328 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021331 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21332 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21333 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21334 msm_routing_put_listen_mixer),
21335 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21336 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21337 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21338 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021339 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21340 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21341 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21342 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021343 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21344 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21345 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21346 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021347 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21348 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21349 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21350 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021351 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21352 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21353 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21354 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021355};
21356
21357static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021358 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21359 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021360 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21361 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021362 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21363 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21367 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21371 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21375 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21379 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21383 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21387 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021390 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21391 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21392 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21393 msm_routing_put_listen_mixer),
21394 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21395 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21396 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21397 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021398 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21399 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21400 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21401 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021402 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21403 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21404 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21405 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021406 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21407 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21408 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21409 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021410 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21411 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21412 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21413 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021414};
21415
21416static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021417 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21418 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021419 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21420 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021421 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21422 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21426 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21430 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21434 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21438 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21442 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21446 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021449 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21450 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21451 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21452 msm_routing_put_listen_mixer),
21453 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21454 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21455 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21456 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021457 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21458 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21459 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21460 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021461 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21462 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21463 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21464 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021465 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21466 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21467 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21468 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021469 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21470 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21471 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21472 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021473};
21474
21475static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021476 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21477 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021478 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21479 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021480 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21481 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21485 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21489 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21493 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21497 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21501 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21505 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021508 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21509 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21510 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21511 msm_routing_put_listen_mixer),
21512 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21513 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21514 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21515 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021516 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21517 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21518 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21519 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021520 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21521 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21522 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21523 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021524 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21525 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21526 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21527 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021528 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21529 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21530 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21531 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021532};
21533
21534static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021535 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21536 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021537 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21538 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021539 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21540 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21544 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21548 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21552 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21556 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21560 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21564 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021567 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21568 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21569 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21570 msm_routing_put_listen_mixer),
21571 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21572 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21573 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21574 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021575 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21576 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21577 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21578 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021579 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21580 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21581 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21582 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021583 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21584 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21585 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21586 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021587 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21588 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21589 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21590 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021591};
21592
21593static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021594 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21595 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021596 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21597 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021598 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21599 MSM_BACKEND_DAI_SLIMBUS_1_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_3_TX", SND_SOC_NOPM,
21603 MSM_BACKEND_DAI_SLIMBUS_3_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_4_TX", SND_SOC_NOPM,
21607 MSM_BACKEND_DAI_SLIMBUS_4_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_5_TX", SND_SOC_NOPM,
21611 MSM_BACKEND_DAI_SLIMBUS_5_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("TERT_MI2S_TX", SND_SOC_NOPM,
21615 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
21619 MSM_BACKEND_DAI_QUATERNARY_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("INT3_MI2S_TX", SND_SOC_NOPM,
21623 MSM_BACKEND_DAI_INT3_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),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021626 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21627 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21628 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21629 msm_routing_put_listen_mixer),
21630 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21631 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21632 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21633 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021634 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21635 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21636 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21637 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021638 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21639 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21640 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21641 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021642 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21643 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21644 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21645 msm_routing_put_listen_mixer),
Guodong Hu395166b2019-10-10 16:56:28 +080021646 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
21647 MSM_BACKEND_DAI_TERT_TDM_TX_0,
21648 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21649 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021650};
21651
21652static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
21653 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21654 0, 1, 0, msm_routing_get_switch_mixer,
21655 msm_routing_put_switch_mixer);
21656
21657static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
21658 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21659 0, 1, 0, msm_routing_get_switch_mixer,
21660 msm_routing_put_switch_mixer);
21661
21662static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
21663 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21664 0, 1, 0, msm_routing_get_switch_mixer,
21665 msm_routing_put_switch_mixer);
21666
21667static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
21668 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21669 0, 1, 0, msm_routing_get_switch_mixer,
21670 msm_routing_put_switch_mixer);
21671
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021672static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
21673 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21674 0, 1, 0, msm_routing_get_switch_mixer,
21675 msm_routing_put_switch_mixer);
21676
21677static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021678 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21679 0, 1, 0, msm_routing_get_switch_mixer,
21680 msm_routing_put_switch_mixer);
21681
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021682static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
21683 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21684 0, 1, 0, msm_routing_get_switch_mixer,
21685 msm_routing_put_switch_mixer);
21686
21687static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
21688 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21689 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
21690 msm_routing_put_fm_pcmrx_switch_mixer);
21691
21692static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
21693 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21694 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
21695 msm_routing_put_int0_mi2s_switch_mixer);
21696
21697static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
21698 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21699 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
21700 msm_routing_put_int4_mi2s_switch_mixer);
21701
21702static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21703 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21704 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21705 msm_routing_put_pri_mi2s_switch_mixer);
21706
21707static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21708 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21709 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21710 msm_routing_put_sec_mi2s_switch_mixer);
21711
21712static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21713 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21714 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21715 msm_routing_put_tert_mi2s_switch_mixer);
21716
21717static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21718 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21719 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21720 msm_routing_put_quat_mi2s_switch_mixer);
21721
Rohit Kumara5077932017-09-10 22:05:05 +053021722static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21723 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21724 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21725 msm_routing_put_quin_mi2s_switch_mixer);
21726
Karthikeyan Manic3700752019-03-11 18:33:53 -070021727static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21728 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21729 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21730 msm_routing_put_sen_mi2s_switch_mixer);
21731
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021732static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
21733 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21734 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21735 msm_routing_put_hfp_switch_mixer);
21736
21737static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
21738 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21739 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21740 msm_routing_put_hfp_switch_mixer);
21741
21742static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21743 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21744 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21745 msm_routing_put_hfp_switch_mixer);
21746
21747static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21748 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21749 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21750 msm_routing_put_hfp_switch_mixer);
21751
21752static const struct snd_kcontrol_new usb_switch_mixer_controls =
21753 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21754 0, 1, 0, msm_routing_get_usb_switch_mixer,
21755 msm_routing_put_usb_switch_mixer);
21756
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021757static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21758 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21759 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21760 msm_routing_a2dp_switch_mixer_put);
21761
Zhou Songcaa541d2019-02-19 18:37:47 +080021762static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21763 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21764 0, 1, 0, msm_routing_sco_switch_mixer_get,
21765 msm_routing_sco_switch_mixer_put);
21766
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021767static const struct soc_enum lsm_port_enum =
21768 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21769
21770static const char * const lsm_func_text[] = {
21771 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21772};
21773static const struct soc_enum lsm_func_enum =
21774 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21775
21776static const struct snd_kcontrol_new lsm_controls[] = {
21777 /* kcontrol of lsm_function */
21778 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21779 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21780 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21781 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21782 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21783 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21784 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21785 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21786 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21787 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21788 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21789 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21790 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21791 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21792 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21793 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21794 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21795 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021796 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21797 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021798 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21799 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Guodong Hu395166b2019-10-10 16:56:28 +080021800 SOC_ENUM_EXT(TERT_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21801 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021802 /* kcontrol of lsm_port */
21803 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21804 msm_routing_lsm_port_get,
21805 msm_routing_lsm_port_put),
21806 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21807 msm_routing_lsm_port_get,
21808 msm_routing_lsm_port_put),
21809 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21810 msm_routing_lsm_port_get,
21811 msm_routing_lsm_port_put),
21812 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21813 msm_routing_lsm_port_get,
21814 msm_routing_lsm_port_put),
21815 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21816 msm_routing_lsm_port_get,
21817 msm_routing_lsm_port_put),
21818 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21819 msm_routing_lsm_port_get,
21820 msm_routing_lsm_port_put),
21821 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21822 msm_routing_lsm_port_get,
21823 msm_routing_lsm_port_put),
21824 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21825 msm_routing_lsm_port_get,
21826 msm_routing_lsm_port_put),
21827};
21828
21829static const char * const aanc_slim_0_rx_text[] = {
21830 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21831 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21832};
21833
21834static const struct soc_enum aanc_slim_0_rx_enum =
21835 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21836 aanc_slim_0_rx_text);
21837
21838static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21839 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21840 msm_routing_slim_0_rx_aanc_mux_get,
21841 msm_routing_slim_0_rx_aanc_mux_put)
21842};
21843
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021844static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21845 struct snd_ctl_elem_value *ucontrol)
21846{
21847 ucontrol->value.integer.value[0] = aanc_level;
21848
21849 return 0;
21850}
21851
21852static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21853 struct snd_ctl_elem_value *ucontrol)
21854{
21855 int ret = 0;
21856
21857 mutex_lock(&routing_lock);
21858 aanc_level = ucontrol->value.integer.value[0];
21859 pr_debug("%s: value: %ld\n",
21860 __func__, ucontrol->value.integer.value[0]);
21861 ret = afe_set_aanc_noise_level(aanc_level);
21862 mutex_unlock(&routing_lock);
21863
21864 return ret;
21865}
21866
21867static const struct snd_kcontrol_new aanc_noise_level[] = {
21868 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21869 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21870};
21871
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021872static int msm_routing_get_stereo_to_custom_stereo_control(
21873 struct snd_kcontrol *kcontrol,
21874 struct snd_ctl_elem_value *ucontrol)
21875{
21876 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21877 return 0;
21878}
21879
21880static int msm_routing_put_stereo_to_custom_stereo_control(
21881 struct snd_kcontrol *kcontrol,
21882 struct snd_ctl_elem_value *ucontrol)
21883{
21884 int flag = 0, i = 0, rc = 0, idx = 0;
21885 int be_index = 0, port_id, topo_id;
21886 unsigned int session_id = 0;
21887 uint16_t op_FL_ip_FL_weight = 0;
21888 uint16_t op_FL_ip_FR_weight = 0;
21889 uint16_t op_FR_ip_FL_weight = 0;
21890 uint16_t op_FR_ip_FR_weight = 0;
21891
21892 flag = ucontrol->value.integer.value[0];
21893 pr_debug("%s E flag %d\n", __func__, flag);
21894
21895 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21896 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21897 __func__, is_custom_stereo_on, flag);
21898 return 0;
21899 }
21900 is_custom_stereo_on = flag ? true : false;
21901 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21902 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21903 port_id = msm_bedais[be_index].port_id;
21904 if (!msm_bedais[be_index].active)
21905 continue;
21906 if ((port_id != SLIMBUS_0_RX) &&
21907 (port_id != RT_PROXY_PORT_001_RX) &&
21908 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21909 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21910 continue;
21911
21912 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21913 MSM_FRONTEND_DAI_MM_SIZE) {
21914 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21915 LEGACY_PCM_MODE)
21916 goto skip_send_custom_stereo;
21917 session_id =
21918 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21919 if (is_custom_stereo_on) {
21920 op_FL_ip_FL_weight =
21921 Q14_GAIN_ZERO_POINT_FIVE;
21922 op_FL_ip_FR_weight =
21923 Q14_GAIN_ZERO_POINT_FIVE;
21924 op_FR_ip_FL_weight =
21925 Q14_GAIN_ZERO_POINT_FIVE;
21926 op_FR_ip_FR_weight =
21927 Q14_GAIN_ZERO_POINT_FIVE;
21928 } else {
21929 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21930 op_FL_ip_FR_weight = 0;
21931 op_FR_ip_FL_weight = 0;
21932 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21933 }
21934 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21935 unsigned long copp =
21936 session_copp_map[i]
21937 [SESSION_TYPE_RX][be_index];
21938 if (!test_bit(idx, &copp))
21939 goto skip_send_custom_stereo;
21940 topo_id = adm_get_topology_for_port_copp_idx(
21941 msm_bedais[be_index].port_id, idx);
21942 if (topo_id < 0)
21943 pr_debug("%s:Err:custom stereo topo %d",
21944 __func__, topo_id);
21945 pr_debug("idx %d\n", idx);
21946 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21947 rc = msm_ds2_dap_set_custom_stereo_onoff
21948 (msm_bedais[be_index].port_id,
21949 idx, is_custom_stereo_on);
21950 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21951 rc = dolby_dap_set_custom_stereo_onoff(
21952 msm_bedais[be_index].port_id,
21953 idx, is_custom_stereo_on);
21954 else
21955 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21956 (msm_bedais[be_index].port_id,
21957 idx, session_id,
21958 op_FL_ip_FL_weight,
21959 op_FL_ip_FR_weight,
21960 op_FR_ip_FL_weight,
21961 op_FR_ip_FR_weight);
21962 if (rc < 0)
21963skip_send_custom_stereo:
21964 pr_err("%s: err setting custom stereo\n",
21965 __func__);
21966 }
21967
21968 }
21969 }
21970 return 0;
21971}
21972
21973static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21974 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21975 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21976 msm_routing_put_stereo_to_custom_stereo_control),
21977};
21978
21979static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21980 struct snd_ctl_elem_value *ucontrol)
21981{
21982 return 0;
21983}
21984
21985static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21986 struct snd_ctl_elem_value *ucontrol)
21987{
21988 int i = 0, j;
21989 int num_app_types = ucontrol->value.integer.value[i++];
21990
21991 pr_debug("%s\n", __func__);
21992
21993 memset(app_type_cfg, 0, MAX_APP_TYPES*
21994 sizeof(struct msm_pcm_routing_app_type_data));
21995 if (num_app_types > MAX_APP_TYPES) {
21996 pr_err("%s: number of app types exceed the max supported\n",
21997 __func__);
21998 return -EINVAL;
21999 }
22000 for (j = 0; j < num_app_types; j++) {
22001 app_type_cfg[j].app_type =
22002 ucontrol->value.integer.value[i++];
22003 app_type_cfg[j].sample_rate =
22004 ucontrol->value.integer.value[i++];
22005 app_type_cfg[j].bit_width =
22006 ucontrol->value.integer.value[i++];
22007 }
22008
22009 return 0;
22010}
22011
22012static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
22013 struct snd_ctl_elem_value *ucontrol)
22014{
22015 int j, fe_id, be_id, port_type;
22016 int ret = 0;
22017 unsigned long copp;
22018 struct msm_pcm_routing_bdai_data *bedai;
22019 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
22020 SESSION_TYPE_RX;
22021 int app_type = ucontrol->value.integer.value[1];
22022 int gain = (ucontrol->value.integer.value[2] +
22023 ucontrol->value.integer.value[3])/2;
22024
22025 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
22026 MSM_AFE_PORT_TYPE_TX;
22027
22028 mutex_lock(&routing_lock);
22029 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
22030 if (is_be_dai_extproc(be_id))
22031 continue;
22032
22033 bedai = &msm_bedais[be_id];
22034 if (afe_get_port_type(bedai->port_id) != port_type)
22035 continue;
22036
22037 if (!bedai->active)
22038 continue;
22039
22040 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
22041 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
22042 continue;
22043
22044 if (app_type !=
22045 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
22046 continue;
22047
22048 copp = session_copp_map[fe_id][dir][be_id];
22049 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
22050 if (!test_bit(j, &copp))
22051 continue;
22052 ret |= adm_set_volume(bedai->port_id, j, gain);
22053 }
22054 }
22055 }
22056 mutex_unlock(&routing_lock);
22057 return ret ? -EINVAL : 0;
22058}
22059
22060static const struct snd_kcontrol_new app_type_cfg_controls[] = {
22061 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080022062 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022063 msm_routing_put_app_type_cfg_control),
22064 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
22065 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
22066};
22067
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022068static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
22069 struct snd_ctl_elem_value *ucontrol)
22070{
22071 int copp_idx, fe_id, be_id, port_type;
22072 int ret = 0;
22073 unsigned long copp;
22074 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022075 u8 *packed_params = NULL;
22076 struct param_hdr_v3 param_hdr;
22077 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
22078 sizeof(uint32_t));
22079
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022080 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
22081 SESSION_TYPE_RX;
22082 int app_type = ucontrol->value.integer.value[1];
22083 int module_id = ucontrol->value.integer.value[2];
22084 int instance_id = ucontrol->value.integer.value[3];
22085 int param_id = ucontrol->value.integer.value[4];
22086 int param_value = ucontrol->value.integer.value[5];
22087
22088 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
22089 MSM_AFE_PORT_TYPE_TX;
22090 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
22091 __func__, app_type, module_id,
22092 instance_id, param_id, param_value);
22093
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022094 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
22095 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022096 return -ENOMEM;
22097
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022098 memset(&param_hdr, 0, sizeof(param_hdr));
22099 param_hdr.module_id = module_id;
22100 param_hdr.instance_id = instance_id;
22101 param_hdr.param_id = param_id;
22102 param_hdr.param_size = sizeof(uint32_t);
22103
22104 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022105
22106 mutex_lock(&routing_lock);
22107 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
22108 if (is_be_dai_extproc(be_id))
22109 continue;
22110
22111 bedai = &msm_bedais[be_id];
22112 if (afe_get_port_type(bedai->port_id) != port_type)
22113 continue;
22114
22115 if (!bedai->active)
22116 continue;
22117
22118 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
22119 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
22120 continue;
22121
22122 if (app_type !=
22123 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
22124 continue;
22125
22126 copp = session_copp_map[fe_id][dir][be_id];
22127 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
22128 copp_idx++) {
22129 if (!test_bit(copp_idx, &copp))
22130 continue;
22131
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022132 ret = q6common_pack_pp_params(packed_params,
22133 &param_hdr,
22134 (u8 *) &param_value,
22135 &packed_param_size);
22136 if (ret) {
22137 pr_err("%s: Failed to pack params, error %d\n",
22138 __func__, ret);
22139 goto done;
22140 }
22141
22142 ret = adm_set_pp_params(bedai->port_id,
22143 copp_idx, NULL,
22144 packed_params,
22145 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022146 if (ret) {
22147 pr_err("%s: Setting param failed with err=%d\n",
22148 __func__, ret);
22149 ret = -EINVAL;
22150 goto done;
22151 }
22152 }
22153 }
22154 }
22155done:
22156 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022157 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022158 return ret;
22159}
22160
22161static const struct snd_kcontrol_new module_cfg_controls[] = {
22162 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
22163 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
22164};
22165
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022166static int msm_routing_get_lsm_app_type_cfg_control(
22167 struct snd_kcontrol *kcontrol,
22168 struct snd_ctl_elem_value *ucontrol)
22169{
Meng Wangadbca4f2018-10-29 14:30:13 +080022170 int shift = ((struct soc_multi_mixer_control *)
22171 kcontrol->private_value)->shift;
22172 int i = 0, j = 0;
22173
22174 ucontrol->value.integer.value[i] = num_app_cfg_types;
22175
22176 for (j = 0; j < num_app_cfg_types; ++j) {
22177 ucontrol->value.integer.value[++i] =
22178 lsm_app_type_cfg[j].app_type;
22179 ucontrol->value.integer.value[++i] =
22180 lsm_app_type_cfg[j].sample_rate;
22181 ucontrol->value.integer.value[++i] =
22182 lsm_app_type_cfg[j].bit_width;
22183 if (shift == 1)
22184 ucontrol->value.integer.value[++i] =
22185 lsm_app_type_cfg[j].num_out_channels;
22186 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022187 return 0;
22188}
22189
22190static int msm_routing_put_lsm_app_type_cfg_control(
22191 struct snd_kcontrol *kcontrol,
22192 struct snd_ctl_elem_value *ucontrol)
22193{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022194 int shift = ((struct soc_multi_mixer_control *)
22195 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022196 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022197
Ajit Pandey248ce562019-09-06 10:51:02 +053022198 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022199 pr_err("%s: number of app types exceed the max supported\n",
22200 __func__);
22201 return -EINVAL;
22202 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022203
Ajit Pandey248ce562019-09-06 10:51:02 +053022204 num_app_cfg_types = ucontrol->value.integer.value[i++];
22205 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
22206 sizeof(struct msm_pcm_routing_app_type_data));
22207
Meng Wangadbca4f2018-10-29 14:30:13 +080022208 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022209 lsm_app_type_cfg[j].app_type =
22210 ucontrol->value.integer.value[i++];
22211 lsm_app_type_cfg[j].sample_rate =
22212 ucontrol->value.integer.value[i++];
22213 lsm_app_type_cfg[j].bit_width =
22214 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022215 /* Shift of 1 indicates this is V2 mixer control */
22216 if (shift == 1)
22217 lsm_app_type_cfg[j].num_out_channels =
22218 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022219 }
22220
22221 return 0;
22222}
22223
22224static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
22225 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
22226 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
22227 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070022228 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
22229 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
22230 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022231};
22232
22233static int msm_routing_get_use_ds1_or_ds2_control(
22234 struct snd_kcontrol *kcontrol,
22235 struct snd_ctl_elem_value *ucontrol)
22236{
22237 ucontrol->value.integer.value[0] = is_ds2_on;
22238 return 0;
22239}
22240
22241static int msm_routing_put_use_ds1_or_ds2_control(
22242 struct snd_kcontrol *kcontrol,
22243 struct snd_ctl_elem_value *ucontrol)
22244{
22245 is_ds2_on = ucontrol->value.integer.value[0];
22246 return 0;
22247}
22248
22249static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
22250 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
22251 1, 0, msm_routing_get_use_ds1_or_ds2_control,
22252 msm_routing_put_use_ds1_or_ds2_control),
22253};
22254
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053022255static int msm_routing_get_hifi_filter_control(
22256 struct snd_kcontrol *kcontrol,
22257 struct snd_ctl_elem_value *ucontrol)
22258{
22259 ucontrol->value.integer.value[0] = hifi_filter_enabled;
22260 return 0;
22261}
22262
22263static int msm_routing_put_hifi_filter_control(
22264 struct snd_kcontrol *kcontrol,
22265 struct snd_ctl_elem_value *ucontrol)
22266{
22267 hifi_filter_enabled = ucontrol->value.integer.value[0];
22268 return 0;
22269}
22270
22271static const struct snd_kcontrol_new hifi_filter_controls[] = {
22272 SOC_SINGLE_EXT("HiFi Filter", SND_SOC_NOPM, 0,
22273 1, 0, msm_routing_get_hifi_filter_control,
22274 msm_routing_put_hifi_filter_control),
22275};
22276
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022277int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
22278 struct snd_ctl_elem_value *ucontrol) {
22279 int rc = 0;
22280 int be_idx = 0;
22281 char *param_value;
22282 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022283 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
22284 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022285
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022286 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022287 if (!param_value)
22288 return -ENOMEM;
22289
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022290 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022291 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
22292 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
22293 break;
22294 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022295 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
22296 param_hdr.instance_id = INSTANCE_ID_0;
22297 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
22298 param_hdr.param_size = param_size;
22299 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
22300 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022301 if (rc) {
22302 pr_err("%s: get parameters failed:%d\n", __func__, rc);
22303 kfree(param_value);
22304 return -EINVAL;
22305 }
22306 update_param_value = (int *)param_value;
22307 ucontrol->value.integer.value[0] = update_param_value[0];
22308
22309 pr_debug("%s: FROM DSP value[0] 0x%x\n",
22310 __func__, update_param_value[0]);
22311 }
22312 kfree(param_value);
22313 return 0;
22314}
22315
22316static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
22317 struct snd_ctl_elem_value *ucontrol)
22318{
22319 voc_session_id = ucontrol->value.integer.value[0];
22320
22321 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
22322
22323 return 0;
22324}
22325
22326static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
22327 struct snd_ctl_elem_value *ucontrol)
22328{
22329 ucontrol->value.integer.value[0] = voc_session_id;
22330
22331 return 0;
22332}
22333
22334static struct snd_kcontrol_new msm_voc_session_controls[] = {
22335 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
22336 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
22337 msm_voc_session_id_put),
22338};
22339
22340static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
22341 struct snd_ctl_elem_info *uinfo)
22342{
22343 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22344 uinfo->count = sizeof(struct sound_focus_param);
22345
22346 return 0;
22347}
22348
22349static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
22350 struct snd_ctl_elem_value *ucontrol)
22351{
22352 int ret = 0;
22353 struct sound_focus_param soundFocusData;
22354
22355 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22356 sizeof(struct sound_focus_param));
22357 ret = voc_set_sound_focus(soundFocusData);
22358 if (ret) {
22359 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22360 __func__, ret);
22361
22362 ret = -EINVAL;
22363 }
22364
22365 return ret;
22366}
22367
22368static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
22369 struct snd_ctl_elem_value *ucontrol)
22370{
22371 int ret = 0;
22372 struct sound_focus_param soundFocusData;
22373
22374 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
22375
22376 ret = voc_get_sound_focus(&soundFocusData);
22377 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022378 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022379 __func__, ret);
22380
22381 ret = -EINVAL;
22382 goto done;
22383 }
22384 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22385 sizeof(struct sound_focus_param));
22386
22387done:
22388 return ret;
22389}
22390
22391static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
22392 struct snd_ctl_elem_info *uinfo)
22393{
22394 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22395 uinfo->count = sizeof(struct source_tracking_param);
22396
22397 return 0;
22398}
22399
22400static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
22401 struct snd_ctl_elem_value *ucontrol)
22402{
Meng Wang92edfde2018-04-24 12:18:37 +080022403 int ret = 0;
22404 struct source_tracking_param sourceTrackingData;
22405
22406 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
22407
22408 ret = voc_get_source_tracking(&sourceTrackingData);
22409 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022410 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080022411 __func__, ret);
22412
22413 ret = -EINVAL;
22414 goto done;
22415 }
22416 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22417 sizeof(struct source_tracking_param));
22418
22419done:
22420 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022421}
22422
22423static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
22424 int *copp_idx)
22425{
22426 int i, idx, be_idx;
22427 int ret = 0;
22428 unsigned long copp;
22429
22430 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
22431
22432 ret = q6audio_validate_port(port_id);
22433 if (ret < 0) {
22434 pr_err("%s: port validation failed id 0x%x ret %d\n",
22435 __func__, port_id, ret);
22436
22437 ret = -EINVAL;
22438 goto done;
22439 }
22440
22441 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22442 if (msm_bedais[be_idx].port_id == port_id)
22443 break;
22444 }
22445 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22446 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
22447
22448 ret = -EINVAL;
22449 goto done;
22450 }
22451
22452 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022453 MSM_FRONTEND_DAI_MAX) {
22454 if (!(is_mm_lsm_fe_id(i) &&
22455 route_check_fe_id_adm_support(i)))
22456 continue;
22457
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022458 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22459 copp = session_copp_map[i]
22460 [session_type][be_idx];
22461 if (test_bit(idx, &copp))
22462 break;
22463 }
22464 if (idx >= MAX_COPPS_PER_PORT)
22465 continue;
22466 else
22467 break;
22468 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022469 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022470 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022471
22472 ret = -EINVAL;
22473 goto done;
22474 }
22475 *copp_idx = idx;
22476 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
22477
22478done:
22479 return ret;
22480}
22481
22482static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
22483 const char *prefix, int *port_id)
22484{
22485 int ret = 0;
22486
22487 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
22488
22489 /*
22490 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
22491 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
22492 * and compare the string with the backend name to derive the port id.
22493 */
22494 if (!strcmp(kcontrol->id.name + strlen(prefix),
22495 "SLIMBUS_0")) {
22496 *port_id = SLIMBUS_0_TX;
22497 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22498 "TERT_MI2S")) {
22499 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
22500 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22501 "INT3_MI2S")) {
22502 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022503 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22504 "VA_CDC_DMA_TX_0")) {
22505 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022506 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22507 "TX_CDC_DMA_TX_3")) {
22508 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022509 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22510 "QUIN_TDM_TX_0")) {
22511 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022512 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22513 "PRIMARY_TDM")) {
22514 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022515 } else {
22516 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
22517 __func__, kcontrol->id.name);
22518
22519 ret = -EINVAL;
22520 goto done;
22521 }
22522 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
22523 __func__, kcontrol->id.name, *port_id);
22524
22525done:
22526 return ret;
22527}
22528
22529static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
22530 struct snd_ctl_elem_value *ucontrol)
22531{
22532 int ret = 0;
22533 struct sound_focus_param soundFocusData;
22534 int port_id, copp_idx;
22535
22536 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22537 "Sound Focus Audio Tx ", &port_id);
22538 if (ret != 0) {
22539 pr_err("%s: Error in deriving port id, err=%d\n",
22540 __func__, ret);
22541
22542 ret = -EINVAL;
22543 goto done;
22544 }
22545
22546 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22547 &copp_idx);
22548 if (ret) {
22549 pr_err("%s: Could not get copp idx for port_id=%d\n",
22550 __func__, port_id);
22551
22552 ret = -EINVAL;
22553 goto done;
22554 }
22555
22556 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22557 sizeof(struct sound_focus_param));
22558
22559 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
22560 if (ret) {
22561 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22562 __func__, ret);
22563
22564 ret = -EINVAL;
22565 goto done;
22566 }
22567
22568done:
22569 return ret;
22570}
22571
22572static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
22573 struct snd_ctl_elem_value *ucontrol)
22574{
22575 int ret = 0;
22576 struct sound_focus_param soundFocusData;
22577 int port_id, copp_idx;
22578
22579 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22580 "Sound Focus Audio Tx ", &port_id);
22581 if (ret) {
22582 pr_err("%s: Error in deriving port id, err=%d\n",
22583 __func__, ret);
22584
22585 ret = -EINVAL;
22586 goto done;
22587 }
22588
22589 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22590 &copp_idx);
22591 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022592 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022593 __func__, port_id);
22594
22595 ret = -EINVAL;
22596 goto done;
22597 }
22598
22599 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
22600 if (ret) {
22601 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
22602 __func__, ret);
22603
22604 ret = -EINVAL;
22605 goto done;
22606 }
22607
22608 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22609 sizeof(struct sound_focus_param));
22610
22611done:
22612 return ret;
22613}
22614
22615static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
22616 struct snd_ctl_elem_value *ucontrol)
22617{
22618 int ret = 0;
22619 struct source_tracking_param sourceTrackingData;
22620 int port_id, copp_idx;
22621
22622 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22623 "Source Tracking Audio Tx ", &port_id);
22624 if (ret) {
22625 pr_err("%s: Error in deriving port id, err=%d\n",
22626 __func__, ret);
22627
22628 ret = -EINVAL;
22629 goto done;
22630 }
22631
22632 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22633 &copp_idx);
22634 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022635 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022636 __func__, port_id);
22637
22638 ret = -EINVAL;
22639 goto done;
22640 }
22641
22642 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
22643 if (ret) {
22644 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
22645 __func__, ret);
22646
22647 ret = -EINVAL;
22648 goto done;
22649 }
22650
22651 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22652 sizeof(struct source_tracking_param));
22653
22654done:
22655 return ret;
22656}
22657
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022658static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
22659 struct snd_ctl_elem_info *uinfo)
22660{
22661 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22662 uinfo->count = sizeof(struct doa_tracking_mon_param);
22663
22664 return 0;
22665}
22666
22667static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
22668 struct snd_ctl_elem_value *ucontrol)
22669{
22670 int ret = 0;
22671 struct doa_tracking_mon_param doa_tracking_data;
22672 int port_id, copp_idx;
22673
22674 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
22675 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22676 "Doa Tracking Monitor Listen ", &port_id);
22677 if (ret) {
22678 pr_err("%s: Error in deriving port id, err=%d\n",
22679 __func__, ret);
22680 ret = -EINVAL;
22681 goto done;
22682 }
22683
22684 /*
22685 * If copp id exists for given port id, query adm to get doa data.
22686 * Else query afe for doa tracking params.
22687 * This is to support in cases where LSM directly connects to
22688 * AFE for FFNS.
22689 */
22690 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22691 &copp_idx);
22692 if (!ret)
22693 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
22694 &doa_tracking_data);
22695 else
22696 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
22697
22698 if (ret) {
22699 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
22700 __func__, ret);
22701 ret = -EINVAL;
22702 goto done;
22703 }
22704
22705 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
22706 sizeof(struct doa_tracking_mon_param));
22707done:
22708 return ret;
22709}
22710
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022711static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
22712 {
22713 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22714 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22715 .name = "Sound Focus Voice Tx SLIMBUS_0",
22716 .info = msm_sound_focus_info,
22717 .get = msm_voice_sound_focus_get,
22718 .put = msm_voice_sound_focus_put,
22719 },
22720 {
22721 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22722 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22723 .name = "Source Tracking Voice Tx SLIMBUS_0",
22724 .info = msm_source_tracking_info,
22725 .get = msm_voice_source_tracking_get,
22726 },
22727 {
22728 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22729 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22730 .name = "Sound Focus Audio Tx SLIMBUS_0",
22731 .info = msm_sound_focus_info,
22732 .get = msm_audio_sound_focus_get,
22733 .put = msm_audio_sound_focus_put,
22734 },
22735 {
22736 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22737 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22738 .name = "Source Tracking Audio Tx SLIMBUS_0",
22739 .info = msm_source_tracking_info,
22740 .get = msm_audio_source_tracking_get,
22741 },
22742 {
22743 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22744 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22745 .name = "Sound Focus Voice Tx TERT_MI2S",
22746 .info = msm_sound_focus_info,
22747 .get = msm_voice_sound_focus_get,
22748 .put = msm_voice_sound_focus_put,
22749 },
22750 {
22751 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22752 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22753 .name = "Source Tracking Voice Tx TERT_MI2S",
22754 .info = msm_source_tracking_info,
22755 .get = msm_voice_source_tracking_get,
22756 },
22757 {
22758 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22759 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22760 .name = "Sound Focus Audio Tx TERT_MI2S",
22761 .info = msm_sound_focus_info,
22762 .get = msm_audio_sound_focus_get,
22763 .put = msm_audio_sound_focus_put,
22764 },
22765 {
22766 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22767 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22768 .name = "Source Tracking Audio Tx TERT_MI2S",
22769 .info = msm_source_tracking_info,
22770 .get = msm_audio_source_tracking_get,
22771 },
22772 {
22773 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22774 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22775 .name = "Sound Focus Voice Tx INT3_MI2S",
22776 .info = msm_sound_focus_info,
22777 .get = msm_voice_sound_focus_get,
22778 .put = msm_voice_sound_focus_put,
22779 },
22780 {
22781 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22782 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22783 .name = "Source Tracking Voice Tx INT3_MI2S",
22784 .info = msm_source_tracking_info,
22785 .get = msm_voice_source_tracking_get,
22786 },
22787 {
22788 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22789 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22790 .name = "Sound Focus Audio Tx INT3_MI2S",
22791 .info = msm_sound_focus_info,
22792 .get = msm_audio_sound_focus_get,
22793 .put = msm_audio_sound_focus_put,
22794 },
22795 {
22796 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22797 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22798 .name = "Source Tracking Audio Tx INT3_MI2S",
22799 .info = msm_source_tracking_info,
22800 .get = msm_audio_source_tracking_get,
22801 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022802 {
22803 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22804 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22805 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22806 .info = msm_sound_focus_info,
22807 .get = msm_voice_sound_focus_get,
22808 .put = msm_voice_sound_focus_put,
22809 },
22810 {
22811 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22812 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22813 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22814 .info = msm_source_tracking_info,
22815 .get = msm_voice_source_tracking_get,
22816 },
22817 {
22818 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22819 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22820 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22821 .info = msm_sound_focus_info,
22822 .get = msm_audio_sound_focus_get,
22823 .put = msm_audio_sound_focus_put,
22824 },
22825 {
22826 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22827 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22828 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22829 .info = msm_source_tracking_info,
22830 .get = msm_audio_source_tracking_get,
22831 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022832 {
22833 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22834 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22835 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22836 .info = msm_sound_focus_info,
22837 .get = msm_voice_sound_focus_get,
22838 .put = msm_voice_sound_focus_put,
22839 },
22840 {
22841 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22842 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22843 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22844 .info = msm_source_tracking_info,
22845 .get = msm_voice_source_tracking_get,
22846 },
22847 {
22848 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22849 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22850 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22851 .info = msm_sound_focus_info,
22852 .get = msm_audio_sound_focus_get,
22853 .put = msm_audio_sound_focus_put,
22854 },
22855 {
22856 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22857 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22858 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22859 .info = msm_source_tracking_info,
22860 .get = msm_audio_source_tracking_get,
22861 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022862 {
22863 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22864 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22865 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22866 .info = msm_sound_focus_info,
22867 .get = msm_voice_sound_focus_get,
22868 .put = msm_voice_sound_focus_put,
22869 },
22870 {
22871 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22872 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22873 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22874 .info = msm_source_tracking_info,
22875 .get = msm_voice_source_tracking_get,
22876 },
22877 {
22878 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22879 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22880 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22881 .info = msm_sound_focus_info,
22882 .get = msm_audio_sound_focus_get,
22883 .put = msm_audio_sound_focus_put,
22884 },
22885 {
22886 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22887 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22888 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22889 .info = msm_source_tracking_info,
22890 .get = msm_audio_source_tracking_get,
22891 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022892 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022893 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22894 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22895 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22896 .info = msm_sound_focus_info,
22897 .get = msm_audio_sound_focus_get,
22898 .put = msm_audio_sound_focus_put,
22899 },
22900 {
22901 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22902 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22903 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22904 .info = msm_source_tracking_info,
22905 .get = msm_audio_source_tracking_get,
22906 },
22907 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022908 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22909 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22910 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22911 .info = msm_doa_tracking_mon_info,
22912 .get = msm_doa_tracking_mon_get,
22913 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022914};
22915
22916static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22917 struct snd_ctl_elem_value *ucontrol)
22918{
22919 int ret = 0;
22920 int item;
22921 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22922
22923 pr_debug("%s item is %d\n", __func__,
22924 ucontrol->value.enumerated.item[0]);
22925 mutex_lock(&routing_lock);
22926 item = ucontrol->value.enumerated.item[0];
22927 if (item < e->items) {
22928 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22929 __func__, e->shift_l, e->values[item]);
22930 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22931 e->values[item] < MSM_BACKEND_DAI_MAX)
22932 /* Enable feedback TX path */
22933 ret = afe_spk_prot_feed_back_cfg(
22934 msm_bedais[e->values[item]].port_id,
22935 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22936 else {
22937 pr_debug("%s values are out of range item %d\n",
22938 __func__, e->values[item]);
22939 /* Disable feedback TX path */
22940 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22941 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22942 else
22943 ret = -EINVAL;
22944 }
22945 } else {
22946 pr_err("%s item value is out of range item\n", __func__);
22947 ret = -EINVAL;
22948 }
22949 mutex_unlock(&routing_lock);
22950 return ret;
22951}
22952
22953static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22954 struct snd_ctl_elem_value *ucontrol)
22955{
22956 int ret = 0;
22957 int item;
22958 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22959
22960 pr_debug("%s item is %d\n", __func__,
22961 ucontrol->value.enumerated.item[0]);
22962 mutex_lock(&routing_lock);
22963 item = ucontrol->value.enumerated.item[0];
22964 if (item < e->items) {
22965 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22966 __func__, e->shift_l, e->values[item]);
22967 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22968 e->values[item] < MSM_BACKEND_DAI_MAX)
22969 /* Enable feedback TX path */
22970 ret = afe_spk_prot_feed_back_cfg(
22971 msm_bedais[e->values[item]].port_id,
22972 msm_bedais[e->shift_l].port_id,
22973 1, 1, 1);
22974 else {
22975 pr_debug("%s values are out of range item %d\n",
22976 __func__, e->values[item]);
22977 /* Disable feedback TX path */
22978 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22979 ret = afe_spk_prot_feed_back_cfg(0,
22980 0, 0, 0, 0);
22981 else
22982 ret = -EINVAL;
22983 }
22984 } else {
22985 pr_err("%s item value is out of range item\n", __func__);
22986 ret = -EINVAL;
22987 }
22988 mutex_unlock(&routing_lock);
22989 return ret;
22990}
22991
22992static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22993 struct snd_ctl_elem_value *ucontrol)
22994{
22995 pr_debug("%s\n", __func__);
22996 return 0;
22997}
22998
22999static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
23000 struct snd_ctl_elem_value *ucontrol)
23001{
23002 pr_debug("%s\n", __func__);
23003 ucontrol->value.enumerated.item[0] = 0;
23004 return 0;
23005}
23006
23007static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
23008 "ZERO", "SLIM4_TX"
23009};
23010
23011static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
23012 "ZERO", "SLIM4_TX"
23013};
23014
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023015static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
23016 "ZERO", "WSA_CDC_DMA_TX_0"
23017};
23018
23019static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
23020 "ZERO", "WSA_CDC_DMA_TX_0"
23021};
23022
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023023static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
23024 "ZERO", "SENARY_TX"
23025};
23026
23027static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
23028 "ZERO", "INT5_MI2S_TX"
23029};
23030
23031static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
23032 "ZERO", "INT5_MI2S_TX"
23033};
23034
Josh Kirschea69fed2018-12-11 16:15:08 -080023035static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023036 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
23037};
23038
Josh Kirschea69fed2018-12-11 16:15:08 -080023039static const int slim0_rx_vi_fb_tx_rch_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 wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023044 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
23045};
23046
Josh Kirschea69fed2018-12-11 16:15:08 -080023047static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023048 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
23049};
23050
23051
Josh Kirschea69fed2018-12-11 16:15:08 -080023052static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023053 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
23054};
23055
Josh Kirschea69fed2018-12-11 16:15:08 -080023056static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023057 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
23058};
23059
Josh Kirschea69fed2018-12-11 16:15:08 -080023060static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023061 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
23062};
23063
23064static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
23065 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
23066 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
23067 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
23068
23069static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
23070 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
23071 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
23072 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
23073
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023074static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
23075 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
23076 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
23077 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
23078
23079static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
23080 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
23081 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
23082 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
23083
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023084static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
23085 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
23086 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
23087 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
23088
23089static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
23090 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
23091 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
23092 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
23093 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
23094
23095static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
23096 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
23097 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
23098 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
23099 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
23100
23101static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
23102 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
23103 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
23104 spkr_prot_put_vi_lch_port);
23105
23106static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
23107 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
23108 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
23109 spkr_prot_put_vi_rch_port);
23110
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023111static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
23112 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
23113 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
23114 spkr_prot_put_vi_lch_port);
23115
23116static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
23117 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
23118 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
23119 spkr_prot_put_vi_rch_port);
23120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023121static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
23122 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
23123 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
23124 spkr_prot_put_vi_lch_port);
23125
23126static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
23127 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
23128 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
23129 spkr_prot_put_vi_lch_port);
23130
23131static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
23132 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
23133 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
23134 spkr_prot_put_vi_rch_port);
23135
23136static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
23137 /* Frontend AIF */
23138 /* Widget name equals to Front-End DAI name<Need confirmation>,
23139 * Stream name must contains substring of front-end dai name
23140 */
23141 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
23142 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
23143 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
23144 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
23145 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
23146 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
23147 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
23148 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
23149 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
23150 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
23151 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
23152 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
23153 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
23154 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
23155 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
23156 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
23157 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023158 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070023159 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053023160 SND_SOC_DAPM_AIF_IN("MM_DL23", "MultiMedia23 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053023161 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023162 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
23163 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
23164 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
23165 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
23166 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
23167 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
23168 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
23169 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
23170 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023171 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023172 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023173 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
23174 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
23175 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
23176 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023177 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070023178 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053023179 SND_SOC_DAPM_AIF_OUT("MM_UL23", "MultiMedia23 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053023180 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080023181 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
23182 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053023183 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023184 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
23185 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
23186 "VoiceMMode1 Playback", 0, 0, 0, 0),
23187 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
23188 "VoiceMMode1 Capture", 0, 0, 0, 0),
23189 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
23190 "VoiceMMode2 Playback", 0, 0, 0, 0),
23191 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
23192 "VoiceMMode2 Capture", 0, 0, 0, 0),
23193 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
23194 0, 0, 0, 0),
23195 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
23196 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023197 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
23198 0, 0, 0, 0),
23199 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
23200 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023201 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
23202 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023203 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
23204 0, 0, 0, 0),
23205 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
23206 0, 0, 0, 0),
23207 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
23208 0, 0, 0, 0),
23209 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
23210 0, 0, 0, 0),
23211 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
23212 0, 0, 0, 0),
23213 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
23214 0, 0, 0, 0),
23215 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
23216 0, 0, 0, 0),
23217 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
23218 0, 0, 0, 0),
23219 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
23220 0, 0, 0, 0),
23221 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
23222 0, 0, 0, 0),
23223 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
23224 0, 0, 0, 0),
23225 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
23226 0, 0, 0, 0),
23227 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
23228 0, 0, 0, 0),
23229 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
23230 0, 0, 0, 0),
23231 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
23232 0, 0, 0, 0),
23233 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
23234 0, 0, 0, 0),
23235 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
23236 0, 0, 0, 0),
23237 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
23238 0, 0, 0, 0),
23239 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
23240 0, 0, 0, 0),
23241 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
23242 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
23243 0, 0, 0, 0),
23244 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
23245 "INT0 MI2S_RX Hostless Playback",
23246 0, 0, 0, 0),
23247 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
23248 "INT4 MI2S_RX Hostless Playback",
23249 0, 0, 0, 0),
23250 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
23251 "Primary MI2S_RX Hostless Playback",
23252 0, 0, 0, 0),
23253 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
23254 "Secondary MI2S_RX Hostless Playback",
23255 0, 0, 0, 0),
23256 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
23257 "Tertiary MI2S_RX Hostless Playback",
23258 0, 0, 0, 0),
23259 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
23260 "Quaternary MI2S_RX Hostless Playback",
23261 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023262 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
23263 "Quinary MI2S_RX Hostless Playback",
23264 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023265 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
23266 "Senary MI2S_RX Hostless Playback",
23267 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023268
23269 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
23270 0, 0, 0, 0),
23271 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
23272 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023273 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
23274 0, 0, 0, 0),
23275 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
23276 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023277 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
23278 0, 0, 0, 0),
23279 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
23280 "INT3 MI2S_TX Hostless Capture",
23281 0, 0, 0, 0),
23282 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
23283 "Tertiary MI2S_TX Hostless Capture",
23284 0, 0, 0, 0),
23285 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
23286 "Secondary MI2S_TX Hostless Capture",
23287 0, 0, 0, 0),
23288 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
23289 "Primary MI2S_TX Hostless Capture",
23290 0, 0, 0, 0),
23291 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
23292 0, 0, 0, 0),
23293 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
23294 0, 0, 0, 0),
23295 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
23296 "Quaternary MI2S_TX Hostless Capture",
23297 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023298 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
23299 "Quinary MI2S_TX Hostless Capture",
23300 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023301 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
23302 "Senary MI2S_TX Hostless Capture",
23303 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023304
23305 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
23306 "Primary TDM0 Hostless Playback",
23307 0, 0, 0, 0),
23308 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
23309 "Primary TDM0 Hostless Capture",
23310 0, 0, 0, 0),
23311 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
23312 "Primary TDM1 Hostless Playback",
23313 0, 0, 0, 0),
23314 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
23315 "Primary TDM1 Hostless Capture",
23316 0, 0, 0, 0),
23317 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
23318 "Primary TDM2 Hostless Playback",
23319 0, 0, 0, 0),
23320 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
23321 "Primary TDM2 Hostless Capture",
23322 0, 0, 0, 0),
23323 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
23324 "Primary TDM3 Hostless Playback",
23325 0, 0, 0, 0),
23326 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
23327 "Primary TDM3 Hostless Capture",
23328 0, 0, 0, 0),
23329 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
23330 "Primary TDM4 Hostless Playback",
23331 0, 0, 0, 0),
23332 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
23333 "Primary TDM4 Hostless Capture",
23334 0, 0, 0, 0),
23335 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
23336 "Primary TDM5 Hostless Playback",
23337 0, 0, 0, 0),
23338 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
23339 "Primary TDM5 Hostless Capture",
23340 0, 0, 0, 0),
23341 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
23342 "Primary TDM6 Hostless Playback",
23343 0, 0, 0, 0),
23344 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
23345 "Primary TDM6 Hostless Capture",
23346 0, 0, 0, 0),
23347 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
23348 "Primary TDM7 Hostless Playback",
23349 0, 0, 0, 0),
23350 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
23351 "Primary TDM7 Hostless Capture",
23352 0, 0, 0, 0),
23353 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
23354 "Secondary TDM0 Hostless Playback",
23355 0, 0, 0, 0),
23356 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
23357 "Secondary TDM0 Hostless Capture",
23358 0, 0, 0, 0),
23359 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
23360 "Secondary TDM1 Hostless Playback",
23361 0, 0, 0, 0),
23362 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
23363 "Secondary TDM1 Hostless Capture",
23364 0, 0, 0, 0),
23365 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
23366 "Secondary TDM2 Hostless Playback",
23367 0, 0, 0, 0),
23368 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
23369 "Secondary TDM2 Hostless Capture",
23370 0, 0, 0, 0),
23371 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
23372 "Secondary TDM3 Hostless Playback",
23373 0, 0, 0, 0),
23374 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
23375 "Secondary TDM3 Hostless Capture",
23376 0, 0, 0, 0),
23377 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
23378 "Secondary TDM4 Hostless Playback",
23379 0, 0, 0, 0),
23380 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
23381 "Secondary TDM4 Hostless Capture",
23382 0, 0, 0, 0),
23383 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
23384 "Secondary TDM5 Hostless Playback",
23385 0, 0, 0, 0),
23386 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
23387 "Secondary TDM5 Hostless Capture",
23388 0, 0, 0, 0),
23389 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
23390 "Secondary TDM6 Hostless Playback",
23391 0, 0, 0, 0),
23392 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
23393 "Secondary TDM6 Hostless Capture",
23394 0, 0, 0, 0),
23395 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
23396 "Secondary TDM7 Hostless Playback",
23397 0, 0, 0, 0),
23398 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
23399 "Secondary TDM7 Hostless Capture",
23400 0, 0, 0, 0),
23401 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
23402 "Tertiary TDM0 Hostless Playback",
23403 0, 0, 0, 0),
23404 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
23405 "Tertiary TDM0 Hostless Capture",
23406 0, 0, 0, 0),
23407 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
23408 "Tertiary TDM1 Hostless Playback",
23409 0, 0, 0, 0),
23410 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
23411 "Tertiary TDM1 Hostless Capture",
23412 0, 0, 0, 0),
23413 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
23414 "Tertiary TDM2 Hostless Playback",
23415 0, 0, 0, 0),
23416 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
23417 "Tertiary TDM2 Hostless Capture",
23418 0, 0, 0, 0),
23419 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
23420 "Tertiary TDM3 Hostless Playback",
23421 0, 0, 0, 0),
23422 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
23423 "Tertiary TDM3 Hostless Capture",
23424 0, 0, 0, 0),
23425 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
23426 "Tertiary TDM4 Hostless Playback",
23427 0, 0, 0, 0),
23428 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
23429 "Tertiary TDM4 Hostless Capture",
23430 0, 0, 0, 0),
23431 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
23432 "Tertiary TDM5 Hostless Playback",
23433 0, 0, 0, 0),
23434 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
23435 "Tertiary TDM5 Hostless Capture",
23436 0, 0, 0, 0),
23437 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
23438 "Tertiary TDM6 Hostless Playback",
23439 0, 0, 0, 0),
23440 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
23441 "Tertiary TDM6 Hostless Capture",
23442 0, 0, 0, 0),
23443 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
23444 "Tertiary TDM7 Hostless Playback",
23445 0, 0, 0, 0),
23446 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
23447 "Tertiary TDM7 Hostless Capture",
23448 0, 0, 0, 0),
23449 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
23450 "Quaternary TDM0 Hostless Playback",
23451 0, 0, 0, 0),
23452 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
23453 "Quaternary TDM0 Hostless Capture",
23454 0, 0, 0, 0),
23455 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
23456 "Quaternary TDM1 Hostless Playback",
23457 0, 0, 0, 0),
23458 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
23459 "Quaternary TDM1 Hostless Capture",
23460 0, 0, 0, 0),
23461 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
23462 "Quaternary TDM2 Hostless Playback",
23463 0, 0, 0, 0),
23464 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
23465 "Quaternary TDM2 Hostless Capture",
23466 0, 0, 0, 0),
23467 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
23468 "Quaternary TDM3 Hostless Playback",
23469 0, 0, 0, 0),
23470 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
23471 "Quaternary TDM3 Hostless Capture",
23472 0, 0, 0, 0),
23473 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
23474 "Quaternary TDM4 Hostless Playback",
23475 0, 0, 0, 0),
23476 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
23477 "Quaternary TDM4 Hostless Capture",
23478 0, 0, 0, 0),
23479 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
23480 "Quaternary TDM5 Hostless Playback",
23481 0, 0, 0, 0),
23482 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
23483 "Quaternary TDM5 Hostless Capture",
23484 0, 0, 0, 0),
23485 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
23486 "Quaternary TDM6 Hostless Playback",
23487 0, 0, 0, 0),
23488 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
23489 "Quaternary TDM6 Hostless Capture",
23490 0, 0, 0, 0),
23491 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
23492 "Quaternary TDM7 Hostless Playback",
23493 0, 0, 0, 0),
23494 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
23495 "Quaternary TDM7 Hostless Capture",
23496 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023497 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
23498 "Quinary TDM0 Hostless Playback",
23499 0, 0, 0, 0),
23500 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
23501 "Quinary TDM0 Hostless Capture",
23502 0, 0, 0, 0),
23503 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
23504 "Quinary TDM1 Hostless Playback",
23505 0, 0, 0, 0),
23506 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
23507 "Quinary TDM1 Hostless Capture",
23508 0, 0, 0, 0),
23509 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
23510 "Quinary TDM2 Hostless Playback",
23511 0, 0, 0, 0),
23512 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
23513 "Quinary TDM2 Hostless Capture",
23514 0, 0, 0, 0),
23515 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
23516 "Quinary TDM3 Hostless Playback",
23517 0, 0, 0, 0),
23518 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
23519 "Quinary TDM3 Hostless Capture",
23520 0, 0, 0, 0),
23521 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
23522 "Quinary TDM4 Hostless Playback",
23523 0, 0, 0, 0),
23524 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
23525 "Quinary TDM4 Hostless Capture",
23526 0, 0, 0, 0),
23527 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
23528 "Quinary TDM5 Hostless Playback",
23529 0, 0, 0, 0),
23530 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
23531 "Quinary TDM5 Hostless Capture",
23532 0, 0, 0, 0),
23533 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
23534 "Quinary TDM6 Hostless Playback",
23535 0, 0, 0, 0),
23536 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
23537 "Quinary TDM6 Hostless Capture",
23538 0, 0, 0, 0),
23539 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
23540 "Quinary TDM7 Hostless Playback",
23541 0, 0, 0, 0),
23542 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
23543 "Quinary TDM7 Hostless Capture",
23544 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023545 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
23546 "Senary TDM0 Hostless Playback",
23547 0, 0, 0, 0),
23548 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
23549 "Senary TDM0 Hostless Capture",
23550 0, 0, 0, 0),
23551 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
23552 "Senary TDM1 Hostless Playback",
23553 0, 0, 0, 0),
23554 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
23555 "Senary TDM1 Hostless Capture",
23556 0, 0, 0, 0),
23557 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
23558 "Senary TDM2 Hostless Playback",
23559 0, 0, 0, 0),
23560 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
23561 "Senary TDM2 Hostless Capture",
23562 0, 0, 0, 0),
23563 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
23564 "Senary TDM3 Hostless Playback",
23565 0, 0, 0, 0),
23566 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
23567 "Senary TDM3 Hostless Capture",
23568 0, 0, 0, 0),
23569 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
23570 "Senary TDM4 Hostless Playback",
23571 0, 0, 0, 0),
23572 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
23573 "Senary TDM4 Hostless Capture",
23574 0, 0, 0, 0),
23575 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
23576 "Senary TDM5 Hostless Playback",
23577 0, 0, 0, 0),
23578 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
23579 "Senary TDM5 Hostless Capture",
23580 0, 0, 0, 0),
23581 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
23582 "Senary TDM6 Hostless Playback",
23583 0, 0, 0, 0),
23584 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
23585 "Senary TDM6 Hostless Capture",
23586 0, 0, 0, 0),
23587 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
23588 "Senary TDM7 Hostless Playback",
23589 0, 0, 0, 0),
23590 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
23591 "Senary TDM7 Hostless Capture",
23592 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023593
23594 /* LSM */
23595 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
23596 0, 0, 0, 0),
23597 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
23598 0, 0, 0, 0),
23599 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
23600 0, 0, 0, 0),
23601 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
23602 0, 0, 0, 0),
23603 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
23604 0, 0, 0, 0),
23605 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
23606 0, 0, 0, 0),
23607 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
23608 0, 0, 0, 0),
23609 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
23610 0, 0, 0, 0),
23611 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
23612 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
23613 /* Backend AIF */
23614 /* Stream name equals to backend dai link stream name */
23615 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
23616 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
23617 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020023618 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
23619 0, 0, 0, 0),
23620 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
23621 0, 0, 0, 0),
23622 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
23623 0, 0, 0, 0),
23624 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
23625 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023626 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
23627 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
23628 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
23629 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
23630 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
23631 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023632 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
23633 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023634 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
23635 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
23636 0, 0, 0, 0),
23637 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
23638 0, 0, 0, 0),
23639 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
23640 0, 0, 0, 0),
23641 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
23642 "Secondary MI2S Playback SD1",
23643 0, 0, 0, 0),
23644 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
23645 0, 0, 0, 0),
23646 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
23647 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023648 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
23649 0, 0, 0, 0),
23650 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
23651 0, 0, 0, 0),
23652 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
23653 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023654 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
23655 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023656 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
23657 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023658 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
23659 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023660 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
23661 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023662 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
23663 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
23664 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
23665 0, 0, 0, 0),
23666 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
23667 0, 0, 0, 0),
23668 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
23669 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023670 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
23671 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023672 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
23673 0, 0, 0, 0),
23674 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
23675 0, 0, 0, 0),
23676 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
23677 0, 0, 0, 0),
23678 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
23679 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
23680 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
23681 0, 0, 0, 0),
23682 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
23683 0, 0, 0, 0),
23684 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
23685 0, 0, 0, 0),
23686 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
23687 0, 0, 0, 0),
23688 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
23689 0, 0, 0, 0),
23690 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
23691 0, 0, 0, 0),
23692 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
23693 0, 0, 0, 0),
23694 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
23695 0, 0, 0, 0),
23696 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
23697 0, 0, 0, 0),
23698 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
23699 0, 0, 0, 0),
23700 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
23701 0, 0, 0, 0),
23702 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
23703 0, 0, 0, 0),
23704 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
23705 0, 0, 0, 0),
23706 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
23707 0, 0, 0, 0),
23708 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
23709 0, 0, 0, 0),
23710 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
23711 0, 0, 0, 0),
23712 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
23713 0, 0, 0, 0),
23714 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
23715 0, 0, 0, 0),
23716 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
23717 0, 0, 0, 0),
23718 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
23719 0, 0, 0, 0),
23720 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
23721 0, 0, 0, 0),
23722 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
23723 0, 0, 0, 0),
23724 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
23725 0, 0, 0, 0),
23726 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23727 0, 0, 0, 0),
23728 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23729 0, 0, 0, 0),
23730 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23731 0, 0, 0, 0),
23732 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23733 0, 0, 0, 0),
23734 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23735 0, 0, 0, 0),
23736 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23737 0, 0, 0, 0),
23738 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23739 0, 0, 0, 0),
23740 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23741 0, 0, 0, 0),
23742 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23743 0, 0, 0, 0),
23744 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23745 0, 0, 0, 0),
23746 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23747 0, 0, 0, 0),
23748 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23749 0, 0, 0, 0),
23750 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23751 0, 0, 0, 0),
23752 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23753 0, 0, 0, 0),
23754 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23755 0, 0, 0, 0),
23756 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23757 0, 0, 0, 0),
23758 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23759 0, 0, 0, 0),
23760 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23761 0, 0, 0, 0),
23762 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23763 0, 0, 0, 0),
23764 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23765 0, 0, 0, 0),
23766 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23767 0, 0, 0, 0),
23768 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23769 0, 0, 0, 0),
23770 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23771 0, 0, 0, 0),
23772 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23773 0, 0, 0, 0),
23774 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23775 0, 0, 0, 0),
23776 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23777 0, 0, 0, 0),
23778 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23779 0, 0, 0, 0),
23780 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23781 0, 0, 0, 0),
23782 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23783 0, 0, 0, 0),
23784 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23785 0, 0, 0, 0),
23786 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23787 0, 0, 0, 0),
23788 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23789 0, 0, 0, 0),
23790 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23791 0, 0, 0, 0),
23792 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23793 0, 0, 0, 0),
23794 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23795 0, 0, 0, 0),
23796 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23797 0, 0, 0, 0),
23798 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23799 0, 0, 0, 0),
23800 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23801 0, 0, 0, 0),
23802 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23803 0, 0, 0, 0),
23804 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23805 0, 0, 0, 0),
23806 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23807 0, 0, 0, 0),
23808 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23809 0, 0, 0, 0),
23810 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23811 0, 0, 0, 0),
23812 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23813 0, 0, 0, 0),
23814 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23815 0, 0, 0, 0),
23816 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23817 0, 0, 0, 0),
23818 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23819 0, 0, 0, 0),
23820 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23821 0, 0, 0, 0),
23822 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23823 0, 0, 0, 0),
23824 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23825 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023826 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23827 0, 0, 0, 0),
23828 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23829 0, 0, 0, 0),
23830 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23831 0, 0, 0, 0),
23832 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23833 0, 0, 0, 0),
23834 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23835 0, 0, 0, 0),
23836 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23837 0, 0, 0, 0),
23838 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23839 0, 0, 0, 0),
23840 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23841 0, 0, 0, 0),
23842 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23843 0, 0, 0, 0),
23844 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23845 0, 0, 0, 0),
23846 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23847 0, 0, 0, 0),
23848 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23849 0, 0, 0, 0),
23850 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23851 0, 0, 0, 0),
23852 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23853 0, 0, 0, 0),
23854 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23855 0, 0, 0, 0),
23856 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23857 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023858 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23859 0, 0, 0, 0),
23860 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23861 0, 0, 0, 0),
23862 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23863 0, 0, 0, 0),
23864 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23865 0, 0, 0, 0),
23866 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23867 0, 0, 0, 0),
23868 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23869 0, 0, 0, 0),
23870 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23871 0, 0, 0, 0),
23872 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23873 0, 0, 0, 0),
23874 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23875 0, 0, 0, 0),
23876 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23877 0, 0, 0, 0),
23878 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23879 0, 0, 0, 0),
23880 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23881 0, 0, 0, 0),
23882 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23883 0, 0, 0, 0),
23884 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23885 0, 0, 0, 0),
23886 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23887 0, 0, 0, 0),
23888 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23889 0, 0, 0, 0),
Ralf Herz29e07132019-07-26 15:15:21 +020023890 SND_SOC_DAPM_AIF_OUT("PRI_META_MI2S_RX", "Primary META MI2S Playback",
23891 0, 0, 0, 0),
23892 SND_SOC_DAPM_AIF_OUT("SEC_META_MI2S_RX", "Secondary META MI2S Playback",
23893 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023894 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23895 0, 0, 0, 0),
23896 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23897 0, 0, 0, 0),
23898 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23899 0, 0, 0, 0),
23900 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23901 0, 0, 0, 0),
23902 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23903 0, 0, 0, 0),
23904 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23905 0, 0, 0, 0),
23906 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23907 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023908 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23909 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023910 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23911 0, 0, 0, 0),
23912 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23913 0, 0, 0, 0),
23914 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23915 0, 0, 0, 0),
23916 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23917 0, 0, 0, 0),
23918 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23919 0, 0, 0, 0),
23920 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23921 0, 0, 0, 0),
23922 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23923 0, 0, 0, 0),
23924 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23925 0, 0, 0, 0),
23926 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23927 0, 0, 0, 0),
23928 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23929 0, 0, 0, 0),
23930 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23931 0, 0, 0, 0),
23932 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23933 0, 0, 0, 0),
23934 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23935 0, 0, 0, 0),
23936 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23937 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023938 /* incall */
23939 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23940 0, 0, 0, 0),
23941 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23942 0, 0, 0, 0),
23943 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23944 0, 0, 0, 0),
23945 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23946 0, 0, 0, 0),
23947 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23948 0, 0, 0, 0),
23949 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23950 0, 0, 0, 0),
23951 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23952 0, 0, 0, 0),
23953 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23954 0, 0, 0, 0),
23955 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23956
23957 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23958 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23959 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23960 0, 0, 0, 0),
23961 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23962 0, 0, 0, 0),
23963 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23964 0, 0, 0, 0),
23965 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23966 0, 0, 0, 0),
23967 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23968 0, 0, 0, 0),
23969 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23970 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023971 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23972 0, 0, 0, 0),
23973 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23974 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023975 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23976 0, 0, 0, 0),
23977 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23978 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023979 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23980 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23981 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23982 0, 0, 0, 0),
23983 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23984 0, 0, 0, 0),
23985 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23986 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23987 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23988 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23989 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23990 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23991 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23992 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23993 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23994 /* In- call recording */
23995 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
23996 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053023997 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
23998 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023999 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
24000 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
24001
24002 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
24003 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053024004 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
24005 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024006 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
24007 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
24008
24009 /* Switch Definitions */
24010 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
24011 &slim_fm_switch_mixer_controls),
24012 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
24013 &slim1_fm_switch_mixer_controls),
24014 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
24015 &slim3_fm_switch_mixer_controls),
24016 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
24017 &slim4_fm_switch_mixer_controls),
24018 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
24019 &slim6_fm_switch_mixer_controls),
24020 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24021 &pcm_rx_switch_mixer_controls),
24022 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24023 &int0_mi2s_rx_switch_mixer_controls),
24024 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24025 &int4_mi2s_rx_switch_mixer_controls),
24026 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24027 &pri_mi2s_rx_switch_mixer_controls),
24028 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24029 &sec_mi2s_rx_switch_mixer_controls),
24030 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24031 &tert_mi2s_rx_switch_mixer_controls),
24032 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24033 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053024034 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24035 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080024036 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
24037 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024038 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
24039 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024040 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
24041 &hfp_pri_aux_switch_mixer_controls),
24042 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
24043 &hfp_aux_switch_mixer_controls),
24044 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
24045 &hfp_int_switch_mixer_controls),
24046 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
24047 &hfp_slim7_switch_mixer_controls),
24048 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
24049 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080024050 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
24051 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053024052 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024053 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024054 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024055 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024056
24057 /* Mixer definitions */
24058 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24059 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
24060 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24061 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
24062 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24063 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
24064 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24065 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
24066 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24067 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
24068 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24069 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053024070 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24071 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024072 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
24073 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
24074 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
24075 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024076 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
24077 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020024078 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24079 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
24080 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24081 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024082 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24083 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
24084 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24085 quaternary_mi2s_rx_mixer_controls,
24086 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
24087 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24088 tertiary_mi2s_rx_mixer_controls,
24089 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
24090 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24091 secondary_mi2s_rx_mixer_controls,
24092 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
24093 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24094 secondary_mi2s_rx2_mixer_controls,
24095 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
24096 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24097 primary_mi2s_rx_mixer_controls,
24098 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
24099 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24100 int0_mi2s_rx_mixer_controls,
24101 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
24102 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24103 int4_mi2s_rx_mixer_controls,
24104 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
24105 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24106 quinary_mi2s_rx_mixer_controls,
24107 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024108 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24109 senary_mi2s_rx_mixer_controls,
24110 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024111 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24112 pri_tdm_rx_0_mixer_controls,
24113 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
24114 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24115 pri_tdm_rx_1_mixer_controls,
24116 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
24117 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24118 pri_tdm_rx_2_mixer_controls,
24119 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
24120 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24121 pri_tdm_rx_3_mixer_controls,
24122 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
24123 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24124 pri_tdm_tx_0_mixer_controls,
24125 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
24126 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24127 sec_tdm_rx_0_mixer_controls,
24128 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
24129 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24130 sec_tdm_rx_1_mixer_controls,
24131 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
24132 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24133 sec_tdm_rx_2_mixer_controls,
24134 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
24135 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24136 sec_tdm_rx_3_mixer_controls,
24137 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
24138 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24139 sec_tdm_tx_0_mixer_controls,
24140 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
24141 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24142 tert_tdm_rx_0_mixer_controls,
24143 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
24144 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24145 tert_tdm_tx_0_mixer_controls,
24146 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
24147 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24148 tert_tdm_rx_1_mixer_controls,
24149 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
24150 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24151 tert_tdm_rx_2_mixer_controls,
24152 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
24153 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24154 tert_tdm_rx_3_mixer_controls,
24155 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
24156 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
24157 tert_tdm_rx_4_mixer_controls,
24158 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
24159 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24160 quat_tdm_rx_0_mixer_controls,
24161 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
24162 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24163 quat_tdm_tx_0_mixer_controls,
24164 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
24165 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24166 quat_tdm_rx_1_mixer_controls,
24167 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
24168 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24169 quat_tdm_rx_2_mixer_controls,
24170 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
24171 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24172 quat_tdm_rx_3_mixer_controls,
24173 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024174 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24175 quin_tdm_rx_0_mixer_controls,
24176 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
24177 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24178 quin_tdm_tx_0_mixer_controls,
24179 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
24180 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24181 quin_tdm_rx_1_mixer_controls,
24182 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024183 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24184 quin_tdm_tx_1_mixer_controls,
24185 ARRAY_SIZE(quin_tdm_tx_1_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024186 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24187 quin_tdm_rx_2_mixer_controls,
24188 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024189 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24190 quin_tdm_tx_2_mixer_controls,
24191 ARRAY_SIZE(quin_tdm_tx_2_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024192 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24193 quin_tdm_rx_3_mixer_controls,
24194 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024195 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24196 quin_tdm_tx_3_mixer_controls,
24197 ARRAY_SIZE(quin_tdm_tx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024198 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24199 sen_tdm_tx_0_mixer_controls,
24200 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
24201 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24202 sen_tdm_rx_0_mixer_controls,
24203 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
24204 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24205 sen_tdm_rx_1_mixer_controls,
24206 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
24207 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24208 sen_tdm_rx_2_mixer_controls,
24209 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
24210 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24211 sen_tdm_rx_3_mixer_controls,
24212 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Ralf Herz29e07132019-07-26 15:15:21 +020024213 SND_SOC_DAPM_MIXER("PRI_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24214 pri_meta_mi2s_rx_mixer_controls,
24215 ARRAY_SIZE(pri_meta_mi2s_rx_mixer_controls)),
24216 SND_SOC_DAPM_MIXER("SEC_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24217 sec_meta_mi2s_rx_mixer_controls,
24218 ARRAY_SIZE(sec_meta_mi2s_rx_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024219 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24220 wsa_cdc_dma_rx_0_mixer_controls,
24221 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
24222 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24223 wsa_cdc_dma_rx_1_mixer_controls,
24224 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024225 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
24226 rx_cdc_dma_rx_0_mixer_controls,
24227 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
24228 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
24229 rx_cdc_dma_rx_1_mixer_controls,
24230 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
24231 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24232 rx_cdc_dma_rx_2_mixer_controls,
24233 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
24234 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
24235 rx_cdc_dma_rx_3_mixer_controls,
24236 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
24237 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
24238 rx_cdc_dma_rx_4_mixer_controls,
24239 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
24240 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
24241 rx_cdc_dma_rx_5_mixer_controls,
24242 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
24243 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
24244 rx_cdc_dma_rx_6_mixer_controls,
24245 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
24246 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
24247 rx_cdc_dma_rx_7_mixer_controls,
24248 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024249 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
24250 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
24251 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
24252 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
24253 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
24254 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
24255 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
24256 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
24257 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
24258 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
24259 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
24260 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
24261 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
24262 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
24263 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
24264 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024265 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
24266 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024267 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
24268 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024269 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
24270 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
24271 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
24272 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
24273 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
24274 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
24275 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
24276 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070024277 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
24278 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070024279 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
24280 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Viraja Kommarajud3478b22019-11-04 20:38:23 +053024281 SND_SOC_DAPM_MIXER("MultiMedia23 Mixer", SND_SOC_NOPM, 0, 0,
24282 mmul23_mixer_controls, ARRAY_SIZE(mmul23_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053024283 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
24284 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024285 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
24286 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
24287 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
24288 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024289 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
24290 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024291 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24292 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
24293 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24294 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
24295 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24296 tert_auxpcm_rx_mixer_controls,
24297 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
24298 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24299 quat_auxpcm_rx_mixer_controls,
24300 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024301 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24302 quin_auxpcm_rx_mixer_controls,
24303 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024304 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24305 sen_auxpcm_rx_mixer_controls,
24306 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024307 /* incall */
24308 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
24309 incall_music_delivery_mixer_controls,
24310 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
24311 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24312 incall_music2_delivery_mixer_controls,
24313 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
24314 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24315 slimbus_4_rx_mixer_controls,
24316 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
24317 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24318 slimbus_6_rx_mixer_controls,
24319 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
24320 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24321 usb_audio_rx_mixer_controls,
24322 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
24323 /* Voice Mixer */
24324 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
24325 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
24326 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
24327 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
24328 SND_SOC_NOPM, 0, 0,
24329 sec_i2s_rx_voice_mixer_controls,
24330 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
24331 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
24332 SND_SOC_NOPM, 0, 0,
24333 sec_mi2s_rx_voice_mixer_controls,
24334 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
24335 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
24336 SND_SOC_NOPM, 0, 0,
24337 slimbus_rx_voice_mixer_controls,
24338 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
24339 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
24340 SND_SOC_NOPM, 0, 0,
24341 bt_sco_rx_voice_mixer_controls,
24342 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
24343 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
24344 SND_SOC_NOPM, 0, 0,
24345 afe_pcm_rx_voice_mixer_controls,
24346 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
24347 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
24348 SND_SOC_NOPM, 0, 0,
24349 aux_pcm_rx_voice_mixer_controls,
24350 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
24351 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
24352 SND_SOC_NOPM, 0, 0,
24353 sec_aux_pcm_rx_voice_mixer_controls,
24354 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
24355 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
24356 SND_SOC_NOPM, 0, 0,
24357 tert_aux_pcm_rx_voice_mixer_controls,
24358 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
24359 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
24360 SND_SOC_NOPM, 0, 0,
24361 quat_aux_pcm_rx_voice_mixer_controls,
24362 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024363 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
24364 SND_SOC_NOPM, 0, 0,
24365 quin_aux_pcm_rx_voice_mixer_controls,
24366 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024367 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
24368 SND_SOC_NOPM, 0, 0,
24369 sen_aux_pcm_rx_voice_mixer_controls,
24370 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024371 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
24372 SND_SOC_NOPM, 0, 0,
24373 hdmi_rx_voice_mixer_controls,
24374 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
24375 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
24376 SND_SOC_NOPM, 0, 0,
24377 mi2s_rx_voice_mixer_controls,
24378 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
24379 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
24380 SND_SOC_NOPM, 0, 0,
24381 pri_mi2s_rx_voice_mixer_controls,
24382 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
24383 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
24384 SND_SOC_NOPM, 0, 0,
24385 int0_mi2s_rx_voice_mixer_controls,
24386 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
24387 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
24388 SND_SOC_NOPM, 0, 0,
24389 int4_mi2s_rx_voice_mixer_controls,
24390 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
24391 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
24392 SND_SOC_NOPM, 0, 0,
24393 tert_mi2s_rx_voice_mixer_controls,
24394 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
24395 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
24396 SND_SOC_NOPM, 0, 0,
24397 quat_mi2s_rx_voice_mixer_controls,
24398 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
24399 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
24400 SND_SOC_NOPM, 0, 0,
24401 quin_mi2s_rx_voice_mixer_controls,
24402 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024403 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
24404 SND_SOC_NOPM, 0, 0,
24405 pri_tdm_rx_0_voice_mixer_controls,
24406 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
24407 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
24408 SND_SOC_NOPM, 0, 0,
24409 pri_tdm_rx_1_voice_mixer_controls,
24410 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
24411 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
24412 SND_SOC_NOPM, 0, 0,
24413 pri_tdm_rx_2_voice_mixer_controls,
24414 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
24415 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
24416 SND_SOC_NOPM, 0, 0,
24417 pri_tdm_rx_3_voice_mixer_controls,
24418 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024419 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
24420 SND_SOC_NOPM, 0, 0,
24421 sen_mi2s_rx_voice_mixer_controls,
24422 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024423 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
24424 SND_SOC_NOPM, 0, 0,
24425 quat_tdm_rx_2_voice_mixer_controls,
24426 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024427 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2_Voice Mixer",
24428 SND_SOC_NOPM, 0, 0,
24429 quin_tdm_rx_2_voice_mixer_controls,
24430 ARRAY_SIZE(quin_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024431 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
24432 SND_SOC_NOPM, 0, 0,
24433 wsa_cdc_dma_rx_0_voice_mixer_controls,
24434 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
24435 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
24436 SND_SOC_NOPM, 0, 0,
24437 rx_cdc_dma_rx_0_voice_mixer_controls,
24438 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024439 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1_Voice Mixer",
24440 SND_SOC_NOPM, 0, 0,
24441 rx_cdc_dma_rx_1_voice_mixer_controls,
24442 ARRAY_SIZE(rx_cdc_dma_rx_1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024443 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
24444 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
24445 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024446 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
24447 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
24448 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
24449 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
24450 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
24451 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
24452 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24453 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
24454 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24455 int_bt_a2dp_rx_mixer_controls,
24456 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
24457 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24458 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
24459 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24460 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
24461 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24462 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
24463 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24464 tx_voice2_stub_mixer_controls,
24465 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
24466 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24467 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
24468 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
24469 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
24470 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
24471 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
24472 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24473 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
24474 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
24475 SND_SOC_NOPM, 0, 0,
24476 slimbus_6_rx_voice_mixer_controls,
24477 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
24478 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24479 slimbus_7_rx_voice_mixer_controls,
24480 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
24481 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24482 slimbus_8_rx_voice_mixer_controls,
24483 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
24484 /* port mixer */
24485 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
24486 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
24487 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
24488 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
24489 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
24490 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
24491 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
24492 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
24493 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
24494 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
24495 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
24496 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
24497 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
24498 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
24499 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024500 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
24501 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
24502 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024503 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
24504 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
24505 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024506 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24507 sbus_1_rx_port_mixer_controls,
24508 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
24509 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24510 bt_sco_rx_port_mixer_controls,
24511 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
24512 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
24513 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
24514 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
24515 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
24516 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
24517 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
24518 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
24519 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
24520 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070024521 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070024522 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
24523 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024524 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
24525 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
24526 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
24527 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
24528 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
24529 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
24530 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
24531 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
24532 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
24533 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24534 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
24535 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24536 primary_mi2s_rx_port_mixer_controls,
24537 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
24538 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24539 sec_mi2s_rx_port_mixer_controls,
24540 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
24541 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24542 tert_mi2s_rx_port_mixer_controls,
24543 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
24544 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24545 quat_mi2s_rx_port_mixer_controls,
24546 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024547 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24548 quin_mi2s_rx_port_mixer_controls,
24549 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024550 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24551 sen_mi2s_rx_port_mixer_controls,
24552 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024553 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24554 pri_tdm_rx_0_port_mixer_controls,
24555 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
24556 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24557 pri_tdm_rx_1_port_mixer_controls,
24558 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
24559 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24560 pri_tdm_rx_2_port_mixer_controls,
24561 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
24562 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24563 pri_tdm_rx_3_port_mixer_controls,
24564 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
24565 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24566 sec_tdm_rx_0_port_mixer_controls,
24567 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
24568 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24569 sec_tdm_rx_1_port_mixer_controls,
24570 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
24571 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24572 sec_tdm_rx_2_port_mixer_controls,
24573 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
24574 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24575 sec_tdm_rx_3_port_mixer_controls,
24576 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070024577 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24578 sec_tdm_rx_7_port_mixer_controls,
24579 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024580 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24581 tert_tdm_rx_0_port_mixer_controls,
24582 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
24583 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24584 tert_tdm_rx_1_port_mixer_controls,
24585 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
24586 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24587 tert_tdm_rx_2_port_mixer_controls,
24588 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
24589 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24590 tert_tdm_rx_3_port_mixer_controls,
24591 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
24592 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24593 quat_tdm_rx_0_port_mixer_controls,
24594 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
24595 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24596 quat_tdm_rx_1_port_mixer_controls,
24597 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
24598 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24599 quat_tdm_rx_2_port_mixer_controls,
24600 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
24601 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24602 quat_tdm_rx_3_port_mixer_controls,
24603 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050024604 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24605 quat_tdm_rx_7_port_mixer_controls,
24606 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024607 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24608 quin_tdm_rx_0_port_mixer_controls,
24609 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
24610 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24611 quin_tdm_rx_1_port_mixer_controls,
24612 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
24613 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24614 quin_tdm_rx_2_port_mixer_controls,
24615 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
24616 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24617 quin_tdm_rx_3_port_mixer_controls,
24618 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080024619 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24620 quin_tdm_rx_7_port_mixer_controls,
24621 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024622 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24623 sen_tdm_rx_0_port_mixer_controls,
24624 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
24625 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24626 sen_tdm_rx_1_port_mixer_controls,
24627 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
24628 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24629 sen_tdm_rx_2_port_mixer_controls,
24630 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
24631 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24632 sen_tdm_rx_3_port_mixer_controls,
24633 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024634 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24635 int0_mi2s_rx_port_mixer_controls,
24636 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
24637 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24638 int4_mi2s_rx_port_mixer_controls,
24639 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024640 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24641 wsa_cdc_dma_rx_0_port_mixer_controls,
24642 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
24643 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24644 rx_cdc_dma_rx_0_port_mixer_controls,
24645 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024646 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24647 rx_cdc_dma_rx_1_port_mixer_controls,
24648 ARRAY_SIZE(rx_cdc_dma_rx_1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024649 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
24650 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
24651 ARRAY_SIZE(tx_qchat_mixer_controls)),
24652 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
24653 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
24654 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
24655 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
24656 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
24657 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024658 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
24659 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
24660 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024661 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
24662 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
24663 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024664 /* lsm mixer definitions */
24665 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
24666 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
24667 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
24668 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
24669 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
24670 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
24671 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
24672 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
24673 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
24674 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
24675 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
24676 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
24677 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
24678 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
24679 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
24680 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
24681 /* Virtual Pins to force backends ON atm */
24682 SND_SOC_DAPM_OUTPUT("BE_OUT"),
24683 SND_SOC_DAPM_INPUT("BE_IN"),
24684
24685 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24686 &slim0_rx_vi_fb_lch_mux),
24687 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24688 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024689 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24690 &wsa_rx_0_vi_fb_lch_mux),
24691 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24692 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024693 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
24694 &mi2s_rx_vi_fb_mux),
24695 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
24696 &int4_mi2s_rx_vi_fb_mono_ch_mux),
24697 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
24698 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
24699
24700 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
24701 &voc_ext_ec_mux),
24702 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
24703 &ext_ec_ref_mux_ul1),
24704 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
24705 &ext_ec_ref_mux_ul2),
24706 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
24707 &ext_ec_ref_mux_ul3),
24708 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
24709 &ext_ec_ref_mux_ul4),
24710 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
24711 &ext_ec_ref_mux_ul5),
24712 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
24713 &ext_ec_ref_mux_ul6),
24714 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
24715 &ext_ec_ref_mux_ul8),
24716 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
24717 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024718 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
24719 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024720 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
24721 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024722 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
24723 &ext_ec_ref_mux_ul17),
24724 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
24725 &ext_ec_ref_mux_ul18),
24726 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
24727 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080024728 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
24729 &ext_ec_ref_mux_ul28),
24730 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
24731 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024732};
24733
24734static const struct snd_soc_dapm_route intercon[] = {
24735 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24736 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24737 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24738 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24739 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24740 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24741 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24742 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24743 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24744 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24745 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24746 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24747 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24748 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24749 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24750 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024751 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024752 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
24753
24754 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24755 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24756 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24757 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24758 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24759 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24760 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24761 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24762 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24763 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24764 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24765 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24766 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24767 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24768 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24769 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024770 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024771 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24772
24773 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24774 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24775 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24776 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24777 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24778 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24779 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24780 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24781 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24782 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24783 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24784 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24785 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24786 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24787 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24788 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024789 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024790 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24791
24792 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24793 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24794 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24795 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24796 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24797 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24798 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24799 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24800 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24801 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24802 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24803 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24804 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24805 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24806 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24807 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024808 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024809 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24810
24811 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24812 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24813 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24814 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24815 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24816 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24817 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24818 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24819 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24820 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24821 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24822 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24823 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24824 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24825 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24826 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024827 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024828 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24829
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024830 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24831 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24832 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24833 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24834 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24835 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24836 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24837 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24838 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24839 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24840 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24841 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24842 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24843 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24844 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24845 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024846 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024847 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24848
24849 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24850 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24851 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24852 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24853 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24854 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24855 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24856 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24857 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24858 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24859 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24860 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24861 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24862 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24863 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24864 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024865 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024866 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24867
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024868 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24869 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24870 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24871 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24872 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24873 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24874 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24875 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24876 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24877 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24878 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24879 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24880 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24881 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24882 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24883 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024884 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024885 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24886
24887 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24888 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24889 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24890 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24891 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24892 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24893 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24894 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24895 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24896 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24897 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24898 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24899 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24900 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24901 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24902 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024903 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024904 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24905
24906 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24907 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24908 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24909 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24910 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24911 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24912 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24913 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24914 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24915 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24916 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24917 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24918 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24919 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24920 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24921 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024922 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024923 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24924
24925 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24926 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24927 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24928 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24929 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24930 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24931 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24932 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24933 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24934 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24935 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24936 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24937 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24938 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24939 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24940 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024941 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024942 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24943
24944 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24945 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24946 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24947 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24948 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24949 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24950 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24951 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24952 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24953 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24954 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24955 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24956 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24957 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24958 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24959 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024960 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024961 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24962
24963 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24964 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24965 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24966 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24967 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24968 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24969 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24970 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24971 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24972 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24973 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24974 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24975 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24976 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24977 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24978 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024979 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024980 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24981
24982 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24983 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24984 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24985 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24986 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24987 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24988 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24989 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24990 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24991 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24992 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24993 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24994 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24995 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
24996 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
24997 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024998 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024999 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
25000
25001 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
25002 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
25003 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
25004 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
25005 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
25006 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
25007 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
25008 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
25009 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
25010 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
25011 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
25012 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
25013 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
25014 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
25015 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
25016 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025017 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025018 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
25019
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025020 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
25021 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
25022 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
25023 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
25024 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
25025 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
25026 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
25027 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
25028 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
25029 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
25030 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
25031 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
25032 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
25033 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
25034 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
25035 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025036 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025037 {"HDMI", NULL, "HDMI Mixer"},
25038
25039 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
25040 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
25041 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
25042 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
25043 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
25044 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
25045 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
25046 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
25047 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
25048 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
25049 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
25050 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
25051 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
25052 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
25053 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
25054 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025055 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025056 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
25057
Karthikeyan Mani57550082018-05-03 18:43:58 -070025058 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
25059 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
25060 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
25061 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
25062 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
25063 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
25064 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
25065 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
25066 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
25067 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
25068 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
25069 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
25070 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
25071 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
25072 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
25073 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025074 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070025075 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
25076
Ralf Herzc8701f72018-06-20 11:37:35 +020025077 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25078 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25079 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25080 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25081 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25082 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25083 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25084 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25085 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25086 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25087 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25088 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25089 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25090 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25091 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25092 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025093 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025094 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
25095
25096 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25097 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25098 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25099 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25100 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25101 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25102 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25103 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25104 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25105 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25106 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25107 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25108 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25109 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25110 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25111 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025112 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025113 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025114
25115 /* incall */
25116 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
25117 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
Anurag Chouhanb2a024a2019-10-09 11:39:08 +053025118 {"Incall_Music Audio Mixer", "MultiMedia4", "MM_DL4"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025119 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
25120 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
25121 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
25122 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25123 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25124 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25125 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25126 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
25127 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25128 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25129 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25130 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25131 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
25132
25133 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25134 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25135 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25136 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25137 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25138 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25139 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25140 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25141 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25142 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25143 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25144 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25145 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25146 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25147 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25148 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025149 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025150 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
25151
25152 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25153 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25154 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25155 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25156 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25157 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25158 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25159 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25160 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25161 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25162 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25163 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25164 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25165 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25166 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25167 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025168 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025169 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
25170
Surendar Karka3ef3d812018-09-28 18:52:35 +053025171 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25172 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25173 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25174 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25175 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25176 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25177 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25178 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25179 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25180 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25181 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25182 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25183 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25184 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25185 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25186 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25187 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25188 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
25189
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025190 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25191 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25192 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25193 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25194 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25195 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25196 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25197 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25198 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25199 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25200 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25201 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25202 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25203 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25204 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25205 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025206 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025207 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
25208
25209 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25210 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25211 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
25212 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25213 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25214 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
25215 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
25216 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25217 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25218 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025219 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025220 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25221 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025222 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025223 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025224 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025225 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025226 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025227 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025228 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025229 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025230 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025231 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025232 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025233 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025234 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025235 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25236 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025237 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025238 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025239 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25240 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25241 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25242 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25243 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025244 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25245 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025246 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025247 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025248 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025249 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25250 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25251 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025252 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025253 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25254 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25255 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25256 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25257 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025258 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025259 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025260 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025261 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25262 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25263 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025264 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025265 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25266 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025267 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025268 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025269 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025270 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025271 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025272 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025273 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025274 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25275 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025276 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025277 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025278 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025279 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025280 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25281 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25282 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025283 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025284 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025285 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25286 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25287 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025288 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025289
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025290 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25291 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25292 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25293 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25294 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25295 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25296 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25297 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25298 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25299 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25300 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25301 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25302 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25303 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25304 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25305 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025306 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025307 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
25308
25309 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25310 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25311 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25312 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25313 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25314 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25315 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25316 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25317 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25318 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25319 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25320 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25321 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25322 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25323 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025324 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025325 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
25326
25327 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25328 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25329 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25330 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25331 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25332 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25333 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25334 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25335 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25336 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25337 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25338 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25339 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25340 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025341 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025342 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
25343
25344 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25345 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25346 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25347 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25348 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25349 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25350 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25351 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25352 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25353 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25354 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25355 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25356 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25357 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025358 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025359 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
25360
25361 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25362 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
25363
25364 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25365 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25366
25367 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25368 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25369 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25370 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25371 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25372 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25373 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25374 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025375 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025376 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25377 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25378 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25379 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25380 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25381 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25382 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025383 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025384 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
Jhansi Konathala8cf03d42019-08-20 19:27:39 +053025385 {"PRI_MI2S_RX Audio Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025386
25387 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25388 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25389 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25390 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25391 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25392 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25393 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25394 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25395 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25396 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25397 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25398 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25399 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25400 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25401 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25402 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
25403
25404 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25405 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25406 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25407 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25408 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25409 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25410 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25411 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25412 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25413 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25414 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25415 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25416 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25417 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25418 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25419 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
25420
25421 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25422 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25423 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25424 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25425 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25426 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25427 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25428 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25429 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25430 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25431 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25432 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25433 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25434 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25435 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25436 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25437 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25438 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
25439
Karthikeyan Manic3700752019-03-11 18:33:53 -070025440 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25441 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25442 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25443 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25444 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25445 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25446 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25447 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25448 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25449 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25450 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25451 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25452 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25453 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25454 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25455 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
25456
Ralf Herz29e07132019-07-26 15:15:21 +020025457 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25458 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25459 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25460 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25461 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25462 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25463 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25464 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25465 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25466 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25467 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25468 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25469 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25470 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25471 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25472 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25473 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25474 {"PRI_META_MI2S_RX", NULL, "PRI_META_MI2S_RX Audio Mixer"},
25475
25476 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25477 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25478 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25479 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25480 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25481 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25482 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25483 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25484 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25485 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25486 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25487 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25488 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25489 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25490 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25491 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25492 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25493 {"SEC_META_MI2S_RX", NULL, "SEC_META_MI2S_RX Audio Mixer"},
25494
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025495 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25496 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25497 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25498 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25499 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25500 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25501 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25502 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25503 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25504 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25505 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25506 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25507 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25508 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25509 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25510 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025511 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025512 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025513 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025514 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
25515
25516 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25517 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25518 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25519 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25520 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25521 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25522 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25523 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25524 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25525 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25526 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25527 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25528 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25529 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25530 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25531 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025532 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025533 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025534 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025535 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
25536
25537 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25538 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25539 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25540 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25541 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25542 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25543 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25544 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25545 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25546 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25547 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25548 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25549 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25550 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25551 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25552 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025553 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025554 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025555 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025556 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
25557
25558 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25559 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25560 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25561 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25562 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25563 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25564 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25565 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25566 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25567 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25568 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25569 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25570 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25571 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25572 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25573 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025574 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025575 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025576 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025577 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
25578
25579 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25580 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25581 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25582 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25583 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25584 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25585 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25586 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25587 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25588 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25589 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25590 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25591 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25592 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25593 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25594 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025595 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025596 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
25597
25598 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25599 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25600 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25601 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25602 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25603 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25604 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25605 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25606 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25607 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25608 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25609 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25610 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25611 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25612 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25613 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025614 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025615 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025616 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025617 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
25618
25619 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25620 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25621 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25622 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25623 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25624 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25625 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25626 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25627 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25628 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25629 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25630 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25631 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25632 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25633 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25634 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025635 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025636 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025637 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025638 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
25639
25640 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25641 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25642 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25643 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25644 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25645 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25646 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25647 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25648 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25649 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25650 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25651 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25652 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25653 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25654 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25655 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025656 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025657 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025658 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025659 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
25660
25661 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25662 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25663 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25664 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25665 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25666 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25667 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25668 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25669 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25670 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25671 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25672 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25673 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25674 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25675 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25676 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025677 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025678 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025679 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025680 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
25681
25682 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25683 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25684 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25685 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25686 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25687 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25688 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25689 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25690 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25691 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25692 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25693 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25694 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25695 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25696 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25697 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025698 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025699 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
25700
25701 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25702 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25703 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25704 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25705 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25706 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25707 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25708 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25709 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25710 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25711 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25712 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25713 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25714 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25715 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25716 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025717 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025718 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025719 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025720 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
25721
25722 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25723 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25724 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25725 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25726 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25727 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25728 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25729 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25730 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25731 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25732 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25733 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25734 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25735 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25736 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25737 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025738 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025739 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
25740
25741 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25742 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25743 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25744 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25745 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25746 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25747 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25748 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25749 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25750 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25751 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25752 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25753 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25754 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25755 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25756 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025757 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025758 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025759 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025760 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
25761
25762 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25763 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25764 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25765 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25766 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25767 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25768 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25769 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25770 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25771 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25772 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25773 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25774 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25775 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25776 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25777 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025778 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025779 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025780 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025781 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
25782
25783 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25784 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25785 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25786 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25787 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25788 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25789 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25790 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25791 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25792 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25793 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25794 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25795 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25796 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25797 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25798 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025799 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025800 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025801 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025802 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
25803
25804 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
25805 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
25806 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
25807 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
25808 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
25809 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
25810 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
25811 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
25812 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
25813 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25814 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25815 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25816 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25817 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25818 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25819 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025820 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025821 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025822 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025823 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25824
25825 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25826 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25827 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25828 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25829 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25830 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25831 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25832 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25833 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25834 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25835 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25836 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25837 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25838 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25839 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25840 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25841 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025842 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025843 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025844 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025845 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25846
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025847 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25848 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25849 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25850 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25851 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25852 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25853 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25854 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25855 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25856 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25857 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25858 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25859 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25860 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25861 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25862 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025863 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025864 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25865
25866 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25867 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25868 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25869 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25870 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25871 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25872 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25873 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25874 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25875 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25876 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25877 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25878 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25879 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25880 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25881 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25882 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025883 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025884 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025885 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025886 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25887
25888 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25889 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25890 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25891 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25892 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25893 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25894 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25895 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25896 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25897 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25898 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25899 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25900 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25901 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25902 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25903 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25904 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025905 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025906 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025907 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025908 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25909
25910 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25911 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25912 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25913 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25914 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25915 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25916 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25917 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25918 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25919 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25920 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25921 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25922 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25923 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25924 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25925 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25926 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025927 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025928 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025929 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025930 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25931
Rohit Kumara5077932017-09-10 22:05:05 +053025932 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25933 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25934 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25935 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25936 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25937 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25938 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25939 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25940 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25941 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25942 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25943 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25944 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25945 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25946 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25947 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25948 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025949 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025950 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025951 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053025952 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25953
25954 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25955 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25956 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25957 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25958 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25959 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25960 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25961 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25962 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25963 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25964 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25965 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25966 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25967 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25968 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25969 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025970 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053025971 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25972
25973 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25974 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25975 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25976 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25977 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25978 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25979 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25980 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25981 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25982 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25983 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25984 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25985 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25986 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25987 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25988 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25989 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025990 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025991 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053025992 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053025993 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
25994
25995 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25996 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25997 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25998 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25999 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
26000 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
26001 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
26002 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
26003 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
26004 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
26005 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
26006 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
26007 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
26008 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
26009 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
26010 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
26011 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026012 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070026013 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026014 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053026015 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
26016
26017 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
26018 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
26019 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
26020 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
26021 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
26022 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
26023 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
26024 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
26025 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
26026 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
26027 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
26028 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
26029 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
26030 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
26031 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
26032 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
26033 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026034 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070026035 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026036 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia23", "MM_DL23"},
Rohit Kumara5077932017-09-10 22:05:05 +053026037 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
26038
Karthikeyan Manic3700752019-03-11 18:33:53 -070026039 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
26040 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
26041 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
26042 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
26043 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
26044 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
26045 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
26046 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
26047 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
26048 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
26049 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
26050 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
26051 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
26052 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
26053 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
26054 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
26055 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
26056 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
26057 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
26058
26059 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
26060 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
26061 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
26062 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
26063 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
26064 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
26065 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
26066 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
26067 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
26068 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
26069 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
26070 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
26071 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
26072 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
26073 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
26074 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
26075 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
26076
26077 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
26078 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
26079 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
26080 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
26081 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
26082 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
26083 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
26084 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
26085 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
26086 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
26087 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
26088 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
26089 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
26090 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
26091 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
26092 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
26093 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
26094 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
26095 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
26096
26097 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
26098 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
26099 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
26100 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
26101 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
26102 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
26103 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
26104 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
26105 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
26106 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
26107 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
26108 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
26109 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
26110 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
26111 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
26112 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
26113 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
26114 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
26115 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
26116
26117 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
26118 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
26119 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
26120 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
26121 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
26122 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
26123 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
26124 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
26125 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
26126 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
26127 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
26128 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
26129 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
26130 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
26131 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
26132 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
26133 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
26134 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
26135 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
26136
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026137 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
26138 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
26139 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
26140 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
26141 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026142 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026143 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026144 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26145 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26146 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26147 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
26148 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026149 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
26150 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026151 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26152 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26153 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26154 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26155 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26156 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26157 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026158 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026159 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26160 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
26161 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026162 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026163 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053026164 {"MultiMedia2 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026165 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
26166 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026167 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026168 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
26169 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026170 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
26171 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
26172 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026173 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026174 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
26175 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
26176 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026177 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026178 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026179 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
26180 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
26181 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026182 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
26183 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
26184 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026185 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
26186 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26187 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
26188 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
26189 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26190 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26191 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26192 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026193 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026194 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26195 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26196 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026197 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026198 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26199 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
26200 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026201 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026202 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026203 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26204 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26205 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026206 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026207 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026208 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26209 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26210 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26211 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
26212 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026213 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026214 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26215 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26216 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26217 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026218 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026219 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026220
26221 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26222 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26223 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26224 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26225 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26226 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26227 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26228 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26229 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26230 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26231 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26232 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26233 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26234 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26235 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26236 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026237 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026238 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26239 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26240 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26241 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026242 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26243 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26244 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26245 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026246 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26247 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26248 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26249 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26250 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026251 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026252 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26253 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26254 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26255 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26256 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26257 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026258 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26259 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026260
26261 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26262 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26263 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26264 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26265 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26266 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26267 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26268 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26269 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26270 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26271 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26272 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26273 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26274 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26275 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26276 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026277 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026278 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26279 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26280 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26281 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026282 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26283 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26284 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26285 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026286 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26287 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26288 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26289 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26290 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026291 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026292 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26293 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26294 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26295 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26296 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26297 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026298 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26299 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026300
26301 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26302 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26303 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26304 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26305 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26306 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26307 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26308 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26309 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26310 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26311 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26312 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26313 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26314 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26315 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26316 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026317 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026318 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26319 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26320 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26321 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026322 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26323 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26324 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26325 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026326 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26327 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26328 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26329 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26330 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026331 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026332 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26333 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26334 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26335 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26336 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26337 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026338 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26339 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026340
26341 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26342 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26343 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26344 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26345 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26346 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26347 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26348 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26349 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26350 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26351 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26352 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26353 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26354 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26355 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26356 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026357 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026358 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26359 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26360 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26361 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026362 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26363 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26364 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26365 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026366 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26367 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26368 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26369 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26370 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026371 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026372 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26373 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26374 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26375 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26376 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26377 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026378 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26379 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026380
26381 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26382 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26383 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26384 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26385 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26386 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26387 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26388 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26389 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26390 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26391 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26392 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26393 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26394 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26395 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26396 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026397 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026398 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26399 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26400 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26401 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026402 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26403 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26404 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26405 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026406 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26407 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26408 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26409 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26410 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026411 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026412 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26413 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26414 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26415 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26416 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26417 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026418 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26419 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026420
26421 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26422 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26423 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26424 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26425 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26426 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26427 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26428 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26429 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26430 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26431 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26432 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26433 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26434 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26435 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26436 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026437 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026438 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26439 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26440 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26441 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026442 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26443 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26444 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26445 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026446 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26447 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26448 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26449 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26450 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026451 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026452 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26453 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26454 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26455 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26456 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26457 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026458 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26459 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026460
26461 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26462 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26463 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26464 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26465 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26466 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26467 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26468 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26469 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26470 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26471 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26472 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26473 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26474 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26475 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26476 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026477 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026478 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26479 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26480 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26481 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026482 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26483 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26484 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26485 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026486 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26487 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26488 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26489 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26490 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026491 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026492 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26493 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26494 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26495 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26496 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26497 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026498 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26499 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026500
Samyak Jain810e42a2019-01-07 17:53:34 +053026501 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026502 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26503 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26504 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26505 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26506 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26507 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26508 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26509 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026510 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26511 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26512 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26513 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026514 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26515 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26516 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26517 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026518 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26519 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26520 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26521 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26522 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026523 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026524 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26525 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26526 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26527 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26528 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26529 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026530 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26531 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026532 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026533
Laxminath Kasam38070be2017-08-17 18:21:59 +053026534 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26535 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26536 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26537 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26538 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26539 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26540 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26541 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026542 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26543 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26544 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26545 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26546 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26547 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026548 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026549
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026550 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26551 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26552 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26553 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026554 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026555 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026556 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26557 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26558 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26559 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26560 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26561 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26562 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26563 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26564 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26565 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26566 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26567 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26568 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26569 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26570 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26571 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026572 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26573 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26574 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26575 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026576 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26577 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26578 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26579 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026580 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26581 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26582 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26583 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26584 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026585 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026586 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26587 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26588 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26589 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26590 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26591 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026592 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26593 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026594 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026595
Derek Chen07c6d1c2018-07-05 10:39:25 -070026596 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26597 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26598 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26599 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26600 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26601 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26602 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26603 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26604 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26605 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26606 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26607 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26608 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26609 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26610 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26611 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26612 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26613 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26614 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26615 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26616 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26617 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026618 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26619 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26620 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26621 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026622 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26623 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26624 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26625 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26626 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026627 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026628 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26629 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26630 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26631 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26632 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26633 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26634 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26635 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026636 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026637
Derek Chenb097d922019-07-31 17:28:02 -070026638 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26639 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26640 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26641 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26642 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26643 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26644 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26645 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26646 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26647 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26648 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26649 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26650 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26651 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26652 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26653 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26654 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26655 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26656 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26657 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26658
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026659 {"MultiMedia23 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26660 {"MultiMedia23 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26661 {"MultiMedia23 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26662 {"MultiMedia23 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26663 {"MultiMedia23 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26664 {"MultiMedia23 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26665 {"MultiMedia23 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26666 {"MultiMedia23 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26667 {"MultiMedia23 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26668 {"MultiMedia23 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26669 {"MultiMedia23 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26670 {"MultiMedia23 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26671 {"MultiMedia23 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26672 {"MultiMedia23 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26673 {"MultiMedia23 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26674 {"MultiMedia23 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26675 {"MultiMedia23 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26676 {"MultiMedia23 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26677 {"MultiMedia23 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26678 {"MultiMedia23 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26679
Surendar Karkac1cde372018-08-14 18:56:24 +053026680 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026681 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026682 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26683 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026684 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026685 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26686 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26687 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26688 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26689 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026690 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026691 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26692 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026693 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026694
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026695 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26696 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26697 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26698 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26699 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26700 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026701 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026702
Asish Bhattacharya34504582017-08-08 12:55:01 +053026703 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26704 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26705 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26706 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26707 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26708 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26709 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26710 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26711 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26712 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26713 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26714 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26715 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26716 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26717 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26718 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26719 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026720 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26721 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26722 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26723 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26724 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026725 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026726 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26727 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26728 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26729 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26730 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26731 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026732 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26733 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026734 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026735
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026736 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26737 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26738 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26739 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26740 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26741 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026742 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026743
26744 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26745 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26746 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26747 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26748 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26749 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026750 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026751 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26752 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026753
26754 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26755 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26756 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26757 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26758 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26759 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026760 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026761 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26762 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026763
26764 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26765 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26766 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26767 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26768 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26769 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026770 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026771 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26772 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026773
26774 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26775 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26776 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26777 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26778 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26779 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026780 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026781 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26782 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026783
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026784 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26785 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26786 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26787 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26788 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26789 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26790 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
26791 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26792 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
26793
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026794 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26795 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26796 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26797 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26798 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26799 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26800 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26801 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26802 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26803 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26804 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26805 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26806 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26807 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26808 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26809 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26810 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26811 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
26812
26813 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26814 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26815 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26816 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26817 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26818 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26819 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26820 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26821 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26822 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26823 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26824 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26825 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26826 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26827 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26828 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26829 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26830 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
26831
26832 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26833 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26834 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26835 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26836 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26837 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26838 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26839 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26840 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26841 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26842 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26843 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26844 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26845 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26846 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26847 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26848 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26849
26850 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26851 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26852 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26853 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26854 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26855 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26856 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26857 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26858 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26859 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26860 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26861 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26862 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26863 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26864 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26865 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26866 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26867
26868 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26869 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26870 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026871 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026872 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26873 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26874 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026875 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26876 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026877 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026878 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26879 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026880 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026881 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26882 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026883 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026884 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26885 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26886 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026887 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26888 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026889 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026890 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26891 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26892 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26893
26894 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26895 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26896 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026897 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026898 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26899 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26900 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026901 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26902 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026903 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026904 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26905 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026906 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026907 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26908 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26909 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26910 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26911 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26912 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26913 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26914 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26915 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026916 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026917 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026918 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26919 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26920 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26921 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026922 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026923 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Viraja Kommarajud3478b22019-11-04 20:38:23 +053026924 {"MM_UL23", NULL, "MultiMedia23 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026925 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026926 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26927 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026928 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026929
26930 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26931 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26932 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26933 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26934 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26935 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26936 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26937 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26938 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26939 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26940 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26941 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26942 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26943 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26944 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26945 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026946 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026947 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26948
26949 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26950 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26951 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26952 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26953 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26954 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26955 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26956 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26957 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26958 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26959 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26960 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26961 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26962 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26963 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26964 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026965 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026966 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26967
26968 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26969 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26970 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26971 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26972 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26973 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26974 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26975 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26976 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26977 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26978 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26979 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26980 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26981 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26982 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26983 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26984 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26985
26986 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26987 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26988 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26989 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26990 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26991 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26992 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26993 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26994 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26995 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26996 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26997 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26998 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26999 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27000 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27001 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27002 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
27003
Rohit Kumara5077932017-09-10 22:05:05 +053027004 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
27005 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
27006 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
27007 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
27008 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
27009 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
27010 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
27011 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
27012 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
27013 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
27014 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
27015 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
27016 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
27017 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27018 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27019 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27020 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
27021
Karthikeyan Manic3700752019-03-11 18:33:53 -070027022 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
27023 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
27024 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
27025 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
27026 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
27027 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
27028 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
27029 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
27030 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
27031 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
27032 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
27033 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
27034 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
27035 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
27036 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
27037 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
27038 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
27039
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027040 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
27041 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27042 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27043 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27044 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27045 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
27046
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027047 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
27048 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27049 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27050 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
27051
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027052 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027053 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27054 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027055 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27056 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27057 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27058 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27059 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
27060
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027061 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
27062 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027063 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27064 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27065 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27066 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
27067
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027068 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
27069 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027070 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27071 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27072 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27073 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
27074
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027075 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
27076 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027077 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27078 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27079 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27080 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
27081
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080027082 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
27083 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080027084 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27085 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27086 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27087 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
27088
Karthikeyan Mani57550082018-05-03 18:43:58 -070027089 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
27090 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27091 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
27092 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27093 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27094 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
27095
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027096 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
27097 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27098 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27099 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27100 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027101 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
27102
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027103 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27104 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27105 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27106 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27107 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27108 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
27109
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027110 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27111 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027112 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27113 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27114 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27115 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
27116
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027117 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27118 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027119 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27120 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27121 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27122 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
27123
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027124 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27125 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027126 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27127 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27128 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27129 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
27130
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027131 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27132 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027133 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27134 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27135 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27136 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
27137
Rohit Kumara5077932017-09-10 22:05:05 +053027138 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27139 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027140 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27141 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27142 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27143 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
27144
Karthikeyan Manic3700752019-03-11 18:33:53 -070027145 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
27146 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27147 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27148 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27149 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27150 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
27151
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027152 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
27153 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27154 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27155 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27156 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27157 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
27158 {"HDMI", NULL, "HDMI_DL_HL"},
27159
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027160 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027161 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27162 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027163 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27164 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27165 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080027166 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027167 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
27168
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027169 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027170 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27171 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027172 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27173 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27174 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27175 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27176 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
27177
27178 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27179 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27180 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27181 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27182 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27183 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
27184
27185 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27186 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27187 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27188 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27189 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27190 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
27191
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027192 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027193 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27194 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027195 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27196 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27197 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27198 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27199 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
27200
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027201 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027202 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27203 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027204 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27205 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27206 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27207 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
27208
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027209 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027210 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27211 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027212 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27213 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27214 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27215 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
27216
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027217 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027218 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27219 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27220 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27221 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
27222 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27223 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27224 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27225 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
27226
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027227 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027228 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27229 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27230 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27231 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
27232 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27233 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27234 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27235 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
27236
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027237 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027238 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27239 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27240 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27241 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
27242 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27243 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27244 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27245 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
27246
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027247 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027248 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
27249 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
27250 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
27251 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
27252 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
27253 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27254 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27255 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
27256
Karthikeyan Manic3700752019-03-11 18:33:53 -070027257 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
27258 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27259 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27260 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27261 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
27262
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027263 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27264 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
27265
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053027266 {"QUIN_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27267 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_Voice Mixer"},
27268
Kunlei Zhang478379f2019-08-01 17:05:33 +080027269 {"WSA_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027270 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27271 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27272 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
27273
Kunlei Zhang478379f2019-08-01 17:05:33 +080027274 {"RX_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027275 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27276 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27277 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
27278
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053027279 {"RX_CDC_DMA_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
27280 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27281 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27282 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1_Voice Mixer"},
27283
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027284 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27285 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27286 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27287 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027288 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027289 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mani925413e2019-09-10 16:57:28 -070027290 {"VOC_EXT_EC MUX", "PRI_TDM_TX", "PRI_TDM_TX_0"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070027291 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027292 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027293 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
27294 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
27295
27296 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27297 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27298 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27299 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27300 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27301 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27302 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27303 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27304 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27305 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027306 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27307 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027308
27309 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27310 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27311 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27312 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27313
27314 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27315 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27316 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27317 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27318
27319 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27320 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27321 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27322 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27323
27324 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27325 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27326 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27327 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27328
27329 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27330 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27331 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27332 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27333
27334 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27335 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27336 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27337 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27338
27339 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27340 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27341 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27342 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27343
Laxminath Kasam38070be2017-08-17 18:21:59 +053027344 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27345 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27346 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27347 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27348 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27349 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27350 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27351 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27352 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27353 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027354 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27355 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070027356
27357 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27358 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27359 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27360 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027362 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27363 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27364 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27365 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27366
27367 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27368 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27369 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27370 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27371
27372 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27373 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27374 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27375 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27376
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027377 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27378 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27379 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27380 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27381
27382 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27383 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27384 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27385 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080027386
27387 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27388 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27389 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27390 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27391 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27392 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27393 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27394 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27395
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027396 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
27397 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
27398 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
27399 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
27400 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
27401 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
27402 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
27403 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053027404 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053027405 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027406 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
27407 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
27408 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027409 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
27410 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053027411 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027412
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027413 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
27414 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
27415 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027416 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027417 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
27418 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
27419 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
27420 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
27421 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
27422 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
27423 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
27424 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
27425 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
27426 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
27427 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
27428 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027429 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027430 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027431 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027432 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
27433 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
27434 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
27435 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
27436 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
27437 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027438 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
27439 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027440 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027441 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
27442
27443 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
27444 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027445 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027446 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
27447 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
27448 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
27449 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
27450 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
27451 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
27452 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
27453 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
27454 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
27455 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
27456 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
27457 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
27458 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027459 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027460 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027461 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
27462 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
27463 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
27464 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
27465 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
27466 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027467 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
27468 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070027469 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027470 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
27471
27472 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
27473 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027474 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027475 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
27476 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
27477 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
27478 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
27479 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
27480 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
27481 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
27482 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
27483 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
27484 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
27485 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
27486 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027487 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027488 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027489 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027490 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Kunlei Zhang478379f2019-08-01 17:05:33 +080027491 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_0_Voip", "TX_CDC_DMA_TX_0"},
27492 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_1_Voip", "TX_CDC_DMA_TX_1"},
27493 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_2_Voip", "TX_CDC_DMA_TX_2"},
27494 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_3_Voip", "TX_CDC_DMA_TX_3"},
27495 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_4_Voip", "TX_CDC_DMA_TX_4"},
27496 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_5_Voip", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027497 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
27498
27499 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
27500 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
27501 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
27502 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
27503 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
27504 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
27505 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
27506 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
27507 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
27508 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080027509 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
27510 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027511 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
27512 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
27513 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
27514 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
27515 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053027516 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27517 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
27518 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027519 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27520 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Laxminath Kasame0eca372019-10-03 19:34:45 +053027521 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027522 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027523 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27524 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27525 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27526 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27527 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27528 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27529 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27530 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027531 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27532 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027533 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027534 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027535 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027536 {"LSM1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027537 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
27538
27539 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27540 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27541 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27542 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27543 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27544 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27545 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27546 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027547 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27548 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027549 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027550 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027551 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027552 {"LSM2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027553 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
27554
27555
27556 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27557 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27558 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27559 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27560 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27561 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27562 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27563 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027564 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27565 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027566 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027567 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027568 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027569 {"LSM3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027570 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
27571
27572
27573 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27574 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27575 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27576 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27577 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27578 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27579 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27580 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027581 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27582 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027583 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027584 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027585 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027586 {"LSM4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027587 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
27588
27589 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27590 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27591 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27592 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27593 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27594 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27595 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27596 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027597 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27598 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027599 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027600 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027601 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027602 {"LSM5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027603 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
27604
27605 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27606 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27607 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27608 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27609 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27610 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027611 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27612 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027613 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027614 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027615 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027616 {"LSM6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027617 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
27618
27619 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27620 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27621 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27622 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27623 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27624 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027625 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27626 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027627 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027628 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027629 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027630 {"LSM7 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027631 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
27632
27633 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27634 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27635 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27636 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27637 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27638 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027639 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27640 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027641 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027642 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027643 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Guodong Hu395166b2019-10-10 16:56:28 +080027644 {"LSM8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027645 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
27646
27647
27648 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
27649 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
27650 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
27651 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
27652 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
27653 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
27654 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
27655 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
27656 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
27657 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
27658 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027659 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027660 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027661 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
27662 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
27663 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
27664 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
27665 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
27666 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
27667
27668 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
27669 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
27670 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
27671 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
27672 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
27673 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
27674 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
27675 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
27676 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
27677 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
27678 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
27679 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080027680 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
27681 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027682 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027683 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027684 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027685 {"MI2S_RX", NULL, "MI2S_DL_HL"},
27686 {"MI2S_UL_HL", NULL, "MI2S_TX"},
27687 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
27688 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
27689
27690 /* connect to INT4_MI2S_DL_HL since same pcm_id */
27691 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27692 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
27693 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27694 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
27695 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
27696 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
27697 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
27698 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
27699 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
27700 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
27701
27702 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
27703 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027704 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
27705 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027706 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
27707 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027708 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27709 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
27710 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27711 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
27712 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
27713 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
27714 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
27715 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
27716 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
27717 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
27718
27719 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
27720 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
27721 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
27722 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
27723 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
27724 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
27725 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
27726 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
27727 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
27728 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
27729 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
27730 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
27731 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
27732 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
27733 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
27734 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027735 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027736 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
27737 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
27738 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
27739 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027740 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027741 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
27742 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
27743 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
27744 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
27745 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
27746 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
27747 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
27748 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027749 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027750 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
27751 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
27752 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
27753 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027754 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027755 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
27756 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
27757 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
27758 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027759 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027760 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
27761 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
27762 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
27763 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080027764 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027765 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
27766 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
27767 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
27768 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
27769 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
27770 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
27771 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
27772 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027773
27774 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27775 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27776 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27777 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27778 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27779 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27780 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27781 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27782 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27783 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27784 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27785 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27786 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27787 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27788 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27789 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027790 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27791 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27792 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27793 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027794 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27795 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27796 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27797 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027798 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
27799
27800 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27801 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27802 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27803 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27804 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27805 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27806 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27807 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27808 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27809 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27810 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27811 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27812 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27813 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27814 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27815 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027816 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27817 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27818 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27819 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027820 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27821 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27822 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27823 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027824 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
27825
27826 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27827 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27828 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27829 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27830 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27831 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27832 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27833 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27834 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27835 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27836 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27837 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27838 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27839 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27840 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27841 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027842 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27843 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27844 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27845 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027846 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27847 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27848 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27849 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027850 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
27851
27852 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27853 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27854 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27855 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27856 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27857 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27858 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27859 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27860 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27861 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27862 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27863 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27864 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27865 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27866 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27867 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027868 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27869 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27870 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27871 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027872 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27873 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27874 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27875 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027876 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27877
27878 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27879 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27880 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27881 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27882 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27883 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27884 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27885 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27886 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27887 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27888 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27889 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27890 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27891 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27892 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27893 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027894 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27895 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27896 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27897 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027898 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27899 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27900 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27901 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027902 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27903
27904 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27905 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27906 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27907 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27908 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27909 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27910 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27911 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27912 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27913 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27914 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27915 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27916 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27917 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27918 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27919 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027920 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27921 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27922 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27923 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027924 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27925 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27926 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27927 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027928 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27929
27930 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27931 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27932 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27933 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27934 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27935 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27936 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27937 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27938 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27939 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27940 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27941 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27942 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27943 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27944 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27945 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027946 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27947 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27948 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27949 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027950 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27951 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27952 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27953 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027954 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27955
27956 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27957 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27958 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27959 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27960 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27961 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27962 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27963 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27964 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27965 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27966 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27967 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27968 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27969 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27970 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27971 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027972 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27973 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27974 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27975 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027976 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27977 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27978 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27979 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027980 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27981
Derek Chenfdcc0982018-10-02 15:14:03 -070027982 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27983 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27984
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027985 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27986 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27987 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27988 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27989 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27990 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27991 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27992 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27993 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27994 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27995 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27996 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27997 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27998 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27999 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28000 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028001 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28002 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28003 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28004 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028005 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28006 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28007 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28008 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028009 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
28010
28011 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28012 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28013 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28014 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28015 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28016 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28017 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28018 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28019 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28020 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28021 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28022 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28023 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28024 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28025 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28026 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028027 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28028 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28029 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28030 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028031 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28032 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28033 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28034 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028035 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
28036
28037 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28038 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28039 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28040 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28041 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28042 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28043 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28044 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28045 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28046 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28047 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28048 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28049 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28050 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28051 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28052 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028053 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28054 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28055 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28056 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028057 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28058 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28059 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28060 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028061 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
28062
28063 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28064 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28065 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28066 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28067 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28068 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28069 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28070 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28071 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28072 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28073 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28074 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28075 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28076 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28077 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28078 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028079 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28080 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28081 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28082 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028083 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28084 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28085 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28086 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028087 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
28088
28089 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28090 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28091 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28092 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28093 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28094 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28095 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28096 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28097 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28098 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28099 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28100 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28101 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28102 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28103 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28104 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028105 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28106 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28107 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28108 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028109 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28110 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28111 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28112 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028113 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
28114
28115 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28116 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28117 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28118 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28119 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28120 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28121 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28122 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28123 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28124 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28125 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28126 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28127 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28128 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28129 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28130 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028131 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28132 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28133 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28134 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028135 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28136 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28137 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28138 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028139 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
28140
28141 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28142 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28143 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28144 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28145 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28146 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28147 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28148 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28149 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28150 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28151 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28152 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28153 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28154 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28155 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28156 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028157 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28158 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28159 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28160 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028161 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28162 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28163 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28164 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028165 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
28166
28167 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28168 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28169 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28170 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28171 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28172 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28173 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28174 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28175 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28176 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28177 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28178 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28179 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28180 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28181 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28182 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053028183 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28184 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28185 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28186 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028187 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28188 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28189 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28190 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028191 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
28192
Derek Chenb9048cb2019-03-07 14:54:13 -050028193 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070028194 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028195 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
28196
Rohit Kumara5077932017-09-10 22:05:05 +053028197 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28198 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28199 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28200 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28201 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28202 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28203 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28204 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28205 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28206 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28207 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28208 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28209 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28210 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28211 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28212 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28213 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28214 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28215 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28216 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028217 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28218 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28219 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28220 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028221 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028222
28223 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28224 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28225 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28226 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28227 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28228 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28229 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28230 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28231 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28232 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28233 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28234 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28235 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28236 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28237 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28238 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28239 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28240 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28241 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28242 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028243 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28244 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28245 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28246 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028247 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028248
28249 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28250 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28251 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28252 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28253 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28254 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28255 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28256 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28257 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28258 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28259 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28260 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28261 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28262 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28263 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28264 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28265 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28266 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28267 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28268 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028269 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28270 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28271 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28272 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028273 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028274
28275 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28276 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28277 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28278 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28279 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28280 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28281 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28282 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28283 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28284 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28285 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28286 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28287 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28288 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28289 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28290 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28291 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
28292 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
28293 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
28294 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028295 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28296 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28297 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28298 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028299 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070028300
28301 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
28302 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080028303 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
28304 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028305
Karthikeyan Manic3700752019-03-11 18:33:53 -070028306 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28307 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28308 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28309 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28310 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28311 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28312 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28313 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28314 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28315 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28316 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28317 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28318 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28319 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28320 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28321 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28322 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28323 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28324 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28325 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28326 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
28327
28328 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28329 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28330 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28331 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28332 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28333 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28334 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28335 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28336 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28337 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28338 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28339 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28340 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28341 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28342 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28343 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28344 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28345 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28346 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28347 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28348 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
28349
28350 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28351 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28352 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28353 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28354 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28355 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28356 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28357 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28358 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28359 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28360 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28361 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28362 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28363 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28364 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28365 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28366 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28367 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28368 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28369 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28370 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
28371
28372 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28373 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28374 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28375 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28376 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28377 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28378 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28379 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28380 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28381 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28382 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28383 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28384 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28385 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28386 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28387 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28388 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28389 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28390 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28391 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28392 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
28393
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028394 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28395 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28396 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28397 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028398 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028399 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028400 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28401 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28402 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28403 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028404 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028405 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28406 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
28407
28408 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28409 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28410 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28411 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028412 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028413 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028414 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28415 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28416 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028417 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028418 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28419 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28420 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
28421
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028422 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28423 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080028424 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028425 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028426 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
28427
28428 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28429 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028430 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028431 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028432
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053028433 {"RX_CDC_DMA_RX_1 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28434 {"RX_CDC_DMA_RX_1 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28435 {"RX_CDC_DMA_RX_1 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28436 {"RX_CDC_DMA_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28437 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Port Mixer"},
28438
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028439 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28440 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28441 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28442 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28443 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028444 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028445 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28446 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28447 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28448 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028449 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028450 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028451 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28452 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28453 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28454 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28455 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028456 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028457 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028458 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28459 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
28460 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28461 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28462 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
28463 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
28464 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
28465 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
28466 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
28467 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
28468
28469
28470 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28471 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28472 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28473 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28474 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053028475 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028476 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028477 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
28478
28479 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28480 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28481 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028482 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028483 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
28484
28485 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28486 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28487 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28488 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
28489
28490 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28491 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
28492 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28493 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
28494
Rohit Kumara5077932017-09-10 22:05:05 +053028495 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28496 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
28497 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28498 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
28499
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028500 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28501 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28502 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28503 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28504 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28505 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28506 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28507 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028508 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028509 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028510 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
28511 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28512 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28513 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28514 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28515 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28516 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28517 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28518 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28519 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28520 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
28521
28522 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28523 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28524 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28525 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28526 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28527 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28528 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28529 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28530 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28531 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28532 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28533 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
28534
28535 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28536 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28537 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28538 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28539 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28540 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28541 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28542 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28543 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28544 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28545 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070028546 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028547 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
28548
kunleizdf5a00a2017-11-27 15:27:36 +080028549 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28550 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028551 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028552
28553 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28554 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028555 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028556
28557 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28558 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028559 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
28560
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028561 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
28562 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028563 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28564 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28565 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28566 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
28567
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028568 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
28569 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028570 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28571 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28572 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28573 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
28574
28575 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28576 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28577 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28578 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
28579 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28580 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28581 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
28582 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
28583 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28584 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
28585 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
28586 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
28587 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
28588
28589 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28590 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28591 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28592 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28593 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028594 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028595 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28596 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28597 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28598 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28599 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28600 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28601 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28602 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
28603
28604 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28605 {"HDMI", NULL, "HDMI_RX Port Mixer"},
28606
28607 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28608 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
28609
Karthikeyan Mani57550082018-05-03 18:43:58 -070028610 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
28611 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
28612
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028613 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28614 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
28615
28616 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28617 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28618 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
28619
28620 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28621 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28622 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28623 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028624 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028625 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028626 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28627 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28628 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28629 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028630 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028631 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
28632
28633 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28634 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28635 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28636 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028637 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028638 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028639 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28640 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28641 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028642 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028643 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
28644
28645 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28646 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28647 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28648 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028649 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028650 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028651 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28652 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28653 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
28654
28655 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28656 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28657 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28658 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028659 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028660 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028661 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28662 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28663 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28664 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28665 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
28666
Rohit Kumara5077932017-09-10 22:05:05 +053028667 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28668 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28669 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28670 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28671 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028672 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028673 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28674 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28675 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
28676
Karthikeyan Manic3700752019-03-11 18:33:53 -070028677 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28678 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28679 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28680 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28681 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
28682 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28683 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28684 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
28685
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028686 /* Backend Enablement */
28687
28688 {"BE_OUT", NULL, "PRI_I2S_RX"},
28689 {"BE_OUT", NULL, "SEC_I2S_RX"},
28690 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
28691 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
28692 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
28693 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28694 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
28695 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
28696 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
28697 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
28698 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028699 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028700 {"BE_OUT", NULL, "USB_AUDIO_RX"},
28701 {"BE_OUT", NULL, "HDMI"},
28702 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070028703 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028704 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
28705 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028706 {"BE_OUT", NULL, "MI2S_RX"},
28707 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
28708 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028709 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028710 {"BE_OUT", NULL, "TERT_MI2S_RX"},
28711 {"BE_OUT", NULL, "SEC_MI2S_RX"},
28712 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
28713 {"BE_OUT", NULL, "PRI_MI2S_RX"},
28714 {"BE_OUT", NULL, "INT0_MI2S_RX"},
28715 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028716 {"BE_OUT", NULL, "INT2_MI2S_RX"},
28717 {"BE_OUT", NULL, "INT3_MI2S_RX"},
28718 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028719 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28720 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
28721 {"BE_OUT", NULL, "INT_FM_RX"},
28722 {"BE_OUT", NULL, "PCM_RX"},
28723 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28724 {"BE_OUT", NULL, "AUX_PCM_RX"},
28725 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
28726 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
28727 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028728 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028729 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028730 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28731 {"BE_OUT", NULL, "INT_FM_RX"},
28732 {"BE_OUT", NULL, "PCM_RX"},
28733 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28734 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
28735 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
28736 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
28737 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
28738 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
28739 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
28740 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
28741 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
28742 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
28743 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028744 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028745 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
28746 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
28747 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
28748 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
28749 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
28750 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
28751 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
28752 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
28753 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028754 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053028755 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
28756 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
28757 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
28758 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080028759 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028760 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
28761 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
28762 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
28763 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028764 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
28765 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028766 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
28767 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
28768 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
28769 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
28770 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
28771 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
28772 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
28773 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028774
28775 {"PRI_I2S_TX", NULL, "BE_IN"},
28776 {"MI2S_TX", NULL, "BE_IN"},
28777 {"QUAT_MI2S_TX", NULL, "BE_IN"},
28778 {"QUIN_MI2S_TX", NULL, "BE_IN"},
28779 {"PRI_MI2S_TX", NULL, "BE_IN"},
28780 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028781 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028782 {"INT2_MI2S_TX", NULL, "BE_IN"},
28783 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028784 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028785 {"INT5_MI2S_TX", NULL, "BE_IN"},
28786 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028787 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028788 {"SLIMBUS_0_TX", NULL, "BE_IN" },
28789 {"SLIMBUS_1_TX", NULL, "BE_IN" },
28790 {"SLIMBUS_3_TX", NULL, "BE_IN" },
28791 {"SLIMBUS_4_TX", NULL, "BE_IN" },
28792 {"SLIMBUS_5_TX", NULL, "BE_IN" },
28793 {"SLIMBUS_6_TX", NULL, "BE_IN" },
28794 {"SLIMBUS_7_TX", NULL, "BE_IN" },
28795 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053028796 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028797 {"USB_AUDIO_TX", NULL, "BE_IN" },
28798 {"INT_BT_SCO_TX", NULL, "BE_IN"},
28799 {"INT_FM_TX", NULL, "BE_IN"},
28800 {"PCM_TX", NULL, "BE_IN"},
28801 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28802 {"BE_OUT", NULL, "STUB_RX"},
28803 {"STUB_TX", NULL, "BE_IN"},
28804 {"STUB_1_TX", NULL, "BE_IN"},
28805 {"BE_OUT", NULL, "AUX_PCM_RX"},
28806 {"AUX_PCM_TX", NULL, "BE_IN"},
28807 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
28808 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
28809 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028810 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028811 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028812 {"INCALL_RECORD_TX", NULL, "BE_IN"},
28813 {"INCALL_RECORD_RX", NULL, "BE_IN"},
28814 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
28815 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028816 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
28817 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028818 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
28819 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28820 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28821 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
28822 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028823 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
28824 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028825 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
28826 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
28827 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
28828 {"PRI_TDM_TX_0", NULL, "BE_IN"},
28829 {"PRI_TDM_TX_1", NULL, "BE_IN"},
28830 {"PRI_TDM_TX_2", NULL, "BE_IN"},
28831 {"PRI_TDM_TX_3", NULL, "BE_IN"},
28832 {"SEC_TDM_TX_0", NULL, "BE_IN"},
28833 {"SEC_TDM_TX_1", NULL, "BE_IN"},
28834 {"SEC_TDM_TX_2", NULL, "BE_IN"},
28835 {"SEC_TDM_TX_3", NULL, "BE_IN"},
28836 {"TERT_TDM_TX_0", NULL, "BE_IN"},
28837 {"TERT_TDM_TX_1", NULL, "BE_IN"},
28838 {"TERT_TDM_TX_2", NULL, "BE_IN"},
28839 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028840 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028841 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
28842 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
28843 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
28844 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028845 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053028846 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028847 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
28848 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
28849 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
28850 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080028851 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028852 {"SEN_TDM_TX_0", NULL, "BE_IN"},
28853 {"SEN_TDM_TX_1", NULL, "BE_IN"},
28854 {"SEN_TDM_TX_2", NULL, "BE_IN"},
28855 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028856 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
28857 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
28858 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
28859 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
28860 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080028861 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028862 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
28863 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
28864 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
28865 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
28866 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
28867 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028868 {"PRI_SPDIF_TX", NULL, "BE_IN"},
28869 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028870};
28871
28872static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
28873 struct snd_pcm_hw_params *params)
28874{
28875 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28876 unsigned int be_id = rtd->dai_link->id;
28877
28878 if (be_id >= MSM_BACKEND_DAI_MAX) {
28879 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28880 return -EINVAL;
28881 }
28882
28883 mutex_lock(&routing_lock);
28884 msm_bedais[be_id].sample_rate = params_rate(params);
28885 msm_bedais[be_id].channel = params_channels(params);
28886 msm_bedais[be_id].format = params_format(params);
28887 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28888 __func__, msm_bedais[be_id].sample_rate,
28889 msm_bedais[be_id].format, be_id);
28890 mutex_unlock(&routing_lock);
28891 return 0;
28892}
28893
28894static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28895{
28896 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28897 unsigned int be_id = rtd->dai_link->id;
28898 int i, session_type, path_type, topology;
28899 struct msm_pcm_routing_bdai_data *bedai;
28900 struct msm_pcm_routing_fdai_data *fdai;
28901
28902 pr_debug("%s: substream->pcm->id:%s\n",
28903 __func__, substream->pcm->id);
28904
28905 if (be_id >= MSM_BACKEND_DAI_MAX) {
28906 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28907 return -EINVAL;
28908 }
28909
28910 bedai = &msm_bedais[be_id];
28911 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28912 0 : 1);
28913 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28914 path_type = ADM_PATH_PLAYBACK;
28915 else
28916 path_type = ADM_PATH_LIVE_REC;
28917
28918 mutex_lock(&routing_lock);
28919 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28920 if (!is_mm_lsm_fe_id(i))
28921 continue;
28922 fdai = &fe_dai_map[i][session_type];
28923 if (fdai->strm_id != INVALID_SESSION) {
28924 int idx;
28925 int port_id;
28926 unsigned long copp =
28927 session_copp_map[i][session_type][be_id];
28928 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28929 if (test_bit(idx, &copp))
28930 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028931
28932 if (idx >= MAX_COPPS_PER_PORT) {
28933 pr_debug("%s: copp idx is invalid, exiting\n",
28934 __func__);
28935 continue;
28936 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028937 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028938 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028939 topology = adm_get_topology_for_port_copp_idx(port_id,
28940 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028941 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028942 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028943 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28944 __func__, copp, i, session_type, be_id,
28945 topology);
28946 clear_bit(idx,
28947 &session_copp_map[i][session_type][be_id]);
28948 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028949 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028950 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028951 topology);
28952 }
28953 }
28954
28955 bedai->active = 0;
28956 bedai->sample_rate = 0;
28957 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028958 mutex_unlock(&routing_lock);
28959
28960 return 0;
28961}
28962
28963static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28964{
28965 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28966 unsigned int be_id = rtd->dai_link->id;
28967 int i, path_type, topology;
28968 int session_type = INVALID_SESSION;
28969 struct msm_pcm_routing_bdai_data *bedai;
28970 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028971 uint16_t bits_per_sample = 16, voc_path_type, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028972 struct msm_pcm_routing_fdai_data *fdai;
28973 u32 session_id;
28974 struct media_format_info voc_be_media_format;
28975 bool is_lsm;
28976
28977 pr_debug("%s: substream->pcm->id:%s\n",
28978 __func__, substream->pcm->id);
28979
28980 if (be_id >= MSM_BACKEND_DAI_MAX) {
28981 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28982 return -EINVAL;
28983 }
28984
28985 bedai = &msm_bedais[be_id];
28986
28987 mutex_lock(&routing_lock);
28988 if (bedai->active == 1)
28989 goto done; /* Ignore prepare if back-end already active */
28990
28991 /* AFE port is not active at this point. However, still
28992 * go ahead setting active flag under the notion that
28993 * QDSP6 is able to handle ADM starting before AFE port
28994 * is started.
28995 */
28996 bedai->active = 1;
28997
28998 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28999 if (!(is_mm_lsm_fe_id(i) &&
29000 route_check_fe_id_adm_support(i)))
29001 continue;
29002
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029003 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
29004 SESSION_TYPE_RX : SESSION_TYPE_TX;
29005 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029006 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029007 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029008 path_type = ADM_PATH_COMPRESSED_RX;
29009 else
29010 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029011 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029012 if ((fdai->passthr_mode != LEGACY_PCM) &&
29013 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020029014 path_type = ADM_PATH_COMPRESSED_TX;
29015 else
29016 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029017 }
29018
29019 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
29020 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029021 if (fdai->strm_id != INVALID_SESSION) {
29022 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053029023 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029024
29025 if (session_type == SESSION_TYPE_TX &&
29026 fdai->be_srate &&
29027 (fdai->be_srate != bedai->sample_rate)) {
29028 pr_debug("%s: flush strm %d diff BE rates\n",
29029 __func__,
29030 fdai->strm_id);
29031
29032 if (fdai->event_info.event_func)
29033 fdai->event_info.event_func(
29034 MSM_PCM_RT_EVT_BUF_RECFG,
29035 fdai->event_info.priv_data);
29036 fdai->be_srate = 0; /* might not need it */
29037 }
29038 bits_per_sample = msm_routing_get_bit_width(
29039 bedai->format);
29040
29041 app_type =
29042 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
29043 if (app_type && is_lsm) {
29044 app_type_idx =
29045 msm_pcm_routing_get_lsm_app_type_idx(app_type);
29046 sample_rate =
29047 fe_dai_app_type_cfg[i][session_type][be_id]
29048 .sample_rate;
29049 bits_per_sample =
29050 lsm_app_type_cfg[app_type_idx].bit_width;
29051 } else if (app_type) {
29052 app_type_idx =
29053 msm_pcm_routing_get_app_type_idx(app_type);
29054 sample_rate =
29055 fe_dai_app_type_cfg[i][session_type]
29056 [be_id].sample_rate;
29057 bits_per_sample =
29058 app_type_cfg[app_type_idx].bit_width;
29059 } else
29060 sample_rate = bedai->sample_rate;
29061 /*
29062 * check if ADM needs to be configured with different
29063 * channel mapping than backend
29064 */
29065 if (!bedai->adm_override_ch)
29066 channels = bedai->channel;
29067 else
29068 channels = bedai->adm_override_ch;
29069 acdb_dev_id =
29070 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
29071 topology = msm_routing_get_adm_topology(i, session_type,
29072 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020029073
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029074 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
29075 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
29076 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020029077 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
29078
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053029079 be_bit_width = msm_routing_get_bit_width(
29080 bedai->format);
29081
29082 if (hifi_filter_enabled && (bedai->sample_rate == 384000
29083 || bedai->sample_rate == 352800) &&
29084 be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029085 bits_per_sample = msm_routing_get_bit_width(
29086 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +053029087 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029088 sample_rate, channels, topology,
29089 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053029090 app_type, acdb_dev_id,
29091 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029092 if ((copp_idx < 0) ||
29093 (copp_idx >= MAX_COPPS_PER_PORT)) {
29094 pr_err("%s: adm open failed\n", __func__);
29095 mutex_unlock(&routing_lock);
29096 return -EINVAL;
29097 }
29098 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
29099 __func__, i, session_type, be_id);
29100 set_bit(copp_idx,
29101 &session_copp_map[i][session_type][be_id]);
29102
29103 if (msm_is_resample_needed(
29104 sample_rate,
29105 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053029106 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029107 bedai->sample_rate);
29108
29109 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029110 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029111 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029112 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053029113 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029114 topology, channels);
29115 }
29116 }
29117
29118 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
29119 session_id = msm_pcm_routing_get_voc_sessionid(i);
29120 if (session_id) {
29121 pr_debug("%s voice session_id: 0x%x\n", __func__,
29122 session_id);
29123
29124 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
29125 voc_path_type = RX_PATH;
29126 else
29127 voc_path_type = TX_PATH;
29128
29129 voc_set_route_flag(session_id, voc_path_type, 1);
29130
29131 memset(&voc_be_media_format, 0,
29132 sizeof(struct media_format_info));
29133
29134 voc_be_media_format.port_id = bedai->port_id;
29135 voc_be_media_format.num_channels = bedai->channel;
29136 voc_be_media_format.sample_rate = bedai->sample_rate;
29137 voc_be_media_format.bits_per_sample = bedai->format;
29138 /* Defaulting this to 1 for voice call usecases */
29139 voc_be_media_format.channel_mapping[0] = 1;
29140
29141 voc_set_device_config(session_id, voc_path_type,
29142 &voc_be_media_format);
29143
29144 if (voc_get_route_flag(session_id, RX_PATH) &&
29145 voc_get_route_flag(session_id, TX_PATH))
29146 voc_enable_device(session_id);
29147 }
29148 }
29149
29150 /* Check if backend is an external ec ref port and set as needed */
29151 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
29152
29153 memset(&voc_be_media_format, 0,
29154 sizeof(struct media_format_info));
29155
29156 /* Get format info for ec ref port from msm_bedais[] */
29157 voc_be_media_format.port_id = bedai->port_id;
29158 voc_be_media_format.num_channels = bedai->channel;
29159 voc_be_media_format.bits_per_sample = bedai->format;
29160 voc_be_media_format.sample_rate = bedai->sample_rate;
29161 /* Defaulting this to 1 for voice call usecases */
29162 voc_be_media_format.channel_mapping[0] = 1;
29163 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
29164 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
29165 __func__, voc_be_media_format.port_id,
29166 voc_be_media_format.num_channels,
29167 voc_be_media_format.bits_per_sample,
29168 voc_be_media_format.sample_rate);
29169 }
29170
29171done:
29172 mutex_unlock(&routing_lock);
29173
29174 return 0;
29175}
29176
29177static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
29178 int fe_id)
29179{
29180 int index, topo_id, be_idx;
29181 unsigned long pp_config = 0;
29182 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029183 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029184 bool compr_passthr_mode = true;
29185
29186 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
29187
29188 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
29189 pr_err("%s: Device pp params on invalid port %d\n",
29190 __func__, port_id);
29191 return -EINVAL;
29192 }
29193
29194 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
29195 if (port_id == msm_bedais[be_idx].port_id)
29196 break;
29197 }
29198
29199 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29200 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
29201 return -EINVAL;
29202 }
29203
29204 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
29205 if (msm_bedais_pp_params[index].port_id == port_id)
29206 break;
29207 }
29208 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
29209 pr_err("%s: Invalid backend pp params index %d\n",
29210 __func__, index);
29211 return -EINVAL;
29212 }
29213
29214 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
29215 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
29216 pr_err("%s: Invalid passthrough topology 0x%x\n",
29217 __func__, topo_id);
29218 return -EINVAL;
29219 }
29220
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029221 session_type =
29222 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
29223 SESSION_TYPE_RX : SESSION_TYPE_TX;
29224
29225 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
29226 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029227 compr_passthr_mode = false;
29228
29229 pp_config = msm_bedais_pp_params[index].pp_params_config;
29230 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
29231 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
29232 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
29233 mute_on = msm_bedais_pp_params[index].mute_on;
29234 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29235 adm_send_compressed_device_mute(port_id,
29236 copp_idx,
29237 mute_on);
29238 }
29239 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
29240 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
29241 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
29242 &pp_config);
29243 latency = msm_bedais_pp_params[index].latency;
29244 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29245 adm_send_compressed_device_latency(port_id,
29246 copp_idx,
29247 latency);
29248 }
29249 return 0;
29250}
29251
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029252static uint32_t msm_routing_get_topology(size_t data_size, void *data)
29253{
29254 uint32_t topology = NULL_COPP_TOPOLOGY;
29255 void *cal_info = NULL;
29256 uint32_t size = 0;
29257
29258 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053029259 if (data_size < sizeof(struct audio_cal_type_basic) +
29260 sizeof(struct audio_cal_info_adm_top)) {
29261 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
29262 goto done;
29263 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029264 size = data_size - sizeof(struct audio_cal_type_basic);
29265 cal_info = kzalloc(size, GFP_KERNEL);
29266
29267 if (!cal_info)
29268 goto done;
29269
29270 memcpy(cal_info,
29271 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
29272
29273 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
29274 kfree(cal_info);
29275 cal_info = NULL;
29276
29277done:
29278 pr_debug("%s: Using topology %d\n", __func__, topology);
29279
29280 return topology;
29281}
29282
29283static void msm_routing_load_topology(size_t data_size, void *data)
29284{
29285 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029286 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029287
29288 topology_id = msm_routing_get_topology(data_size, data);
29289 if (topology_id != NULL_COPP_TOPOLOGY)
29290 ret = q6core_load_unload_topo_modules(topology_id,
29291 CORE_LOAD_TOPOLOGY);
29292 if (ret < 0)
29293 pr_debug("%s %d load topology failed\n",
29294 __func__, topology_id);
29295
29296}
29297
29298static void msm_routing_unload_topology(uint32_t topology_id)
29299{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029300 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029301
29302 if (topology_id != NULL_COPP_TOPOLOGY)
29303 ret = q6core_load_unload_topo_modules(topology_id,
29304 CORE_UNLOAD_TOPOLOGY);
29305 if (ret < 0)
29306 pr_debug("%s %d unload topology failed\n",
29307 __func__, topology_id);
29308
29309}
29310
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029311static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29312 struct snd_ctl_elem_value *ucontrol)
29313{
29314 int pp_id = ucontrol->value.integer.value[0];
29315 int port_id = 0;
29316 int index, be_idx, i, topo_id, idx;
29317 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029318 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029319 bool compr_passthr_mode = true;
29320
29321 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
29322
29323 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
29324 port_id = msm_bedais[be_idx].port_id;
29325 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
29326 break;
29327 }
29328
29329 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29330 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
29331 return -EINVAL;
29332 }
29333
29334 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
29335 if (msm_bedais_pp_params[index].port_id == port_id)
29336 break;
29337 }
29338 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
29339 pr_err("%s: Invalid pp params backend index %d\n",
29340 __func__, index);
29341 return -EINVAL;
29342 }
29343
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029344 session_type =
29345 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
29346 SESSION_TYPE_RX : SESSION_TYPE_TX;
29347
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029348 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
29349 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029350 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
29351 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029352 compr_passthr_mode = false;
29353
29354 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29355 unsigned long copp =
29356 session_copp_map[i]
29357 [SESSION_TYPE_RX][be_idx];
29358 if (!test_bit(idx, &copp))
29359 continue;
29360 topo_id = adm_get_topology_for_port_copp_idx(port_id,
29361 idx);
29362 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
29363 continue;
29364 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
29365 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029366 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029367 switch (pp_id) {
29368 case ADM_PP_PARAM_MUTE_ID:
29369 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
29370 mute = ucontrol->value.integer.value[1] ? true : false;
29371 msm_bedais_pp_params[index].mute_on = mute;
29372 set_bit(ADM_PP_PARAM_MUTE_BIT,
29373 &msm_bedais_pp_params[index].pp_params_config);
29374 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29375 adm_send_compressed_device_mute(port_id,
29376 idx, mute);
29377 break;
29378 case ADM_PP_PARAM_LATENCY_ID:
29379 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
29380 msm_bedais_pp_params[index].latency =
29381 ucontrol->value.integer.value[1];
29382 set_bit(ADM_PP_PARAM_LATENCY_BIT,
29383 &msm_bedais_pp_params[index].pp_params_config);
29384 latency = msm_bedais_pp_params[index].latency =
29385 ucontrol->value.integer.value[1];
29386 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29387 adm_send_compressed_device_latency(port_id,
29388 idx, latency);
29389 break;
29390 default:
29391 pr_info("%s, device pp param %d not supported\n",
29392 __func__, pp_id);
29393 break;
29394 }
29395 }
29396 }
29397 return 0;
29398}
29399
29400static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29401 struct snd_ctl_elem_value *ucontrol)
29402{
29403 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
29404 return 0;
29405}
29406
29407static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
29408 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
29409 0, 3, msm_routing_get_device_pp_params_mixer,
29410 msm_routing_put_device_pp_params_mixer),
29411};
29412
29413static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
29414 struct snd_ctl_elem_value *ucontrol)
29415{
29416 ucontrol->value.integer.value[0] =
29417 core_get_license_status(ASM_MEDIA_FMT_APTX);
29418 pr_debug("%s: status %ld\n", __func__,
29419 ucontrol->value.integer.value[0]);
29420 return 0;
29421}
29422
29423static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
29424 struct snd_ctl_elem_value *ucontrol)
29425{
29426 int32_t status = 0;
29427
29428 status = core_set_license(ucontrol->value.integer.value[0],
29429 APTX_CLASSIC_DEC_LICENSE_ID);
29430 pr_debug("%s: status %d\n", __func__, status);
29431 return status;
29432}
29433
29434static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
29435 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
29436 0xFFFF, 0, msm_aptx_dec_license_control_get,
29437 msm_aptx_dec_license_control_put),
29438};
29439
Rohit kumar63ffaa72019-02-01 18:05:33 +053029440static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
29441 struct snd_ctl_elem_value *ucontrol)
29442{
29443 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
29444 uint32_t be_idx = ucontrol->value.integer.value[0];
29445 int i;
29446
Rohit kumar2b4cbd82019-04-30 13:31:25 +053029447 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29448 pr_err("%s: Invalid Backend index %d\n", __func__, be_idx);
29449 return -EINVAL;
29450 }
29451
Rohit kumar63ffaa72019-02-01 18:05:33 +053029452 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
29453 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
29454 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
29455 pr_err("%s: Invalid channel map %d\n",
29456 __func__, channel_map[i]);
29457 return -EINVAL;
29458 }
29459 }
29460 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
29461
29462 return 0;
29463}
29464
29465static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
29466 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
29467 MSM_BACKEND_DAI_MAX, 0,
29468 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
29469 msm_routing_put_port_chmap_mixer),
29470};
29471
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029472static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
29473 struct snd_ctl_elem_info *uinfo)
29474{
29475 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
29476 uinfo->count = sizeof(be_dai_name_table);
29477 return 0;
29478}
29479
29480static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
29481 unsigned int __user *bytes,
29482 unsigned int size)
29483{
29484 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029485 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029486
29487 if (size < sizeof(be_dai_name_table)) {
29488 pr_err("%s: invalid size %d requested, returning\n",
29489 __func__, size);
29490 ret = -EINVAL;
29491 goto done;
29492 }
29493
29494 /*
29495 * Fill be_dai_name_table from msm_bedais table to reduce code changes
29496 * needed when adding new backends
29497 */
29498 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29499 be_dai_name_table[i].be_id = i;
29500 strlcpy(be_dai_name_table[i].be_name,
29501 msm_bedais[i].name,
29502 LPASS_BE_NAME_MAX_LENGTH);
29503 }
29504
29505 ret = copy_to_user(bytes, &be_dai_name_table,
29506 sizeof(be_dai_name_table));
29507 if (ret) {
29508 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
29509 ret = -EFAULT;
29510 }
29511
29512done:
29513 return ret;
29514}
29515
29516static const struct snd_kcontrol_new
29517 msm_routing_be_dai_name_table_mixer_controls[] = {
29518 {
29519 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
29520 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
29521 .info = msm_routing_be_dai_name_table_info,
29522 .name = "Backend DAI Name Table",
29523 .tlv.c = snd_soc_bytes_tlv_callback,
29524 .private_value = (unsigned long) &(struct soc_bytes_ext) {
29525 .max = sizeof(be_dai_name_table),
29526 .get = msm_routing_be_dai_name_table_tlv_get,
29527 }
29528 },
29529};
29530
29531static int msm_routing_stereo_channel_reverse_control_get(
29532 struct snd_kcontrol *kcontrol,
29533 struct snd_ctl_elem_value *ucontrol)
29534{
29535 ucontrol->value.integer.value[0] = swap_ch;
29536 pr_debug("%s: Swap channel value: %ld\n", __func__,
29537 ucontrol->value.integer.value[0]);
29538 return 0;
29539}
29540
29541static int msm_routing_stereo_channel_reverse_control_put(
29542 struct snd_kcontrol *kcontrol,
29543 struct snd_ctl_elem_value *ucontrol)
29544{
29545 int i, idx, be_index, port_id;
29546 int ret = 0;
29547 unsigned long copp;
29548
29549 pr_debug("%s Swap channel value:%ld\n", __func__,
29550 ucontrol->value.integer.value[0]);
29551
29552 swap_ch = ucontrol->value.integer.value[0];
29553
29554 mutex_lock(&routing_lock);
29555 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
29556 port_id = msm_bedais[be_index].port_id;
29557 if (!msm_bedais[be_index].active)
29558 continue;
29559
29560 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
29561 MSM_FRONTEND_DAI_MM_SIZE) {
29562 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
29563 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29564 if (!test_bit(idx, &copp))
29565 continue;
29566
29567 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
29568 __func__, port_id, idx);
29569 ret = adm_swap_speaker_channels(
29570 port_id, idx,
29571 msm_bedais[be_index].sample_rate,
29572 swap_ch);
29573 if (ret) {
29574 pr_err("%s:Swap_channel failed, err=%d\n",
29575 __func__, ret);
29576 goto done;
29577 }
29578 }
29579 }
29580 }
29581done:
29582 mutex_unlock(&routing_lock);
29583 return ret;
29584}
29585
29586static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
29587 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
29588 1, 0, msm_routing_stereo_channel_reverse_control_get,
29589 msm_routing_stereo_channel_reverse_control_put),
29590};
29591
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029592static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
29593 struct snd_ctl_elem_info *uinfo)
29594{
29595 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
29596 uinfo->count = 1;
29597 return 0;
29598}
29599
29600static int msm_routing_instance_id_support_put(
29601 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29602{
29603 bool supported = ucontrol->value.integer.value[0] ? true : false;
29604
29605 q6common_update_instance_id_support(supported);
29606 return 0;
29607}
29608
29609static int msm_routing_instance_id_support_get(
29610 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29611{
29612 bool supported = false;
29613
29614 supported = q6common_is_instance_id_supported();
29615 ucontrol->value.integer.value[0] = supported ? 1 : 0;
29616
29617 return 0;
29618}
29619
29620static const struct snd_kcontrol_new
29621 msm_routing_feature_support_mixer_controls[] = {
29622 {
29623 .access = SNDRV_CTL_ELEM_ACCESS_READ |
29624 SNDRV_CTL_ELEM_ACCESS_WRITE,
29625 .info = msm_routing_instance_id_support_info,
29626 .name = "Instance ID Support",
29627 .put = msm_routing_instance_id_support_put,
29628 .get = msm_routing_instance_id_support_get,
29629 },
29630};
29631
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029632static const struct snd_pcm_ops msm_routing_pcm_ops = {
29633 .hw_params = msm_pcm_routing_hw_params,
29634 .close = msm_pcm_routing_close,
29635 .prepare = msm_pcm_routing_prepare,
29636};
29637
29638/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080029639static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029640{
Meng Wangee084a02018-09-04 16:11:58 +080029641 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029642 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080029643 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
29644 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080029645 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029646 ARRAY_SIZE(intercon));
29647
Meng Wangee084a02018-09-04 16:11:58 +080029648 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029649
Meng Wangee084a02018-09-04 16:11:58 +080029650 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029651 ARRAY_SIZE(lsm_controls));
29652
Meng Wangee084a02018-09-04 16:11:58 +080029653 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029654 ARRAY_SIZE(aanc_slim_0_rx_mux));
29655
Meng Wangee084a02018-09-04 16:11:58 +080029656 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053029657 ARRAY_SIZE(aanc_noise_level));
29658
Meng Wangee084a02018-09-04 16:11:58 +080029659 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029660 ARRAY_SIZE(msm_voc_session_controls));
29661
Meng Wangee084a02018-09-04 16:11:58 +080029662 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029663 ARRAY_SIZE(app_type_cfg_controls));
29664
Meng Wangee084a02018-09-04 16:11:58 +080029665 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029666 ARRAY_SIZE(lsm_app_type_cfg_controls));
29667
Meng Wangee084a02018-09-04 16:11:58 +080029668 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070029669 ARRAY_SIZE(module_cfg_controls));
29670
Meng Wangee084a02018-09-04 16:11:58 +080029671 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029672 stereo_to_custom_stereo_controls,
29673 ARRAY_SIZE(stereo_to_custom_stereo_controls));
29674
Meng Wangee084a02018-09-04 16:11:58 +080029675 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029676 ARRAY_SIZE(ec_ref_param_controls));
29677
Meng Wangee084a02018-09-04 16:11:58 +080029678 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029679 ARRAY_SIZE(channel_mixer_controls));
29680
Meng Wangee084a02018-09-04 16:11:58 +080029681 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029682
Meng Wangee084a02018-09-04 16:11:58 +080029683 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029684
Meng Wangee084a02018-09-04 16:11:58 +080029685 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029686
Meng Wangee084a02018-09-04 16:11:58 +080029687 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029688 use_ds1_or_ds2_controls,
29689 ARRAY_SIZE(use_ds1_or_ds2_controls));
29690
Meng Wangee084a02018-09-04 16:11:58 +080029691 snd_soc_add_component_controls(component,
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029692 hifi_filter_controls,
29693 ARRAY_SIZE(hifi_filter_controls));
29694
29695 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029696 device_pp_params_mixer_controls,
29697 ARRAY_SIZE(device_pp_params_mixer_controls));
29698
Meng Wangee084a02018-09-04 16:11:58 +080029699 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029700 msm_routing_be_dai_name_table_mixer_controls,
29701 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
29702
Meng Wangee084a02018-09-04 16:11:58 +080029703 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029704 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029705 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029706 ARRAY_SIZE(adm_channel_config_controls));
29707
Meng Wangee084a02018-09-04 16:11:58 +080029708 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029709 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029710 snd_soc_add_component_controls(component,
29711 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029712 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080029713 snd_soc_add_component_controls(
29714 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029715 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053029716 snd_soc_add_component_controls(component,
29717 port_multi_channel_map_mixer_controls,
29718 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029719
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029720 return 0;
29721}
29722
29723int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
29724{
29725 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
29726}
29727
29728void msm_routing_pcm_free(struct snd_pcm *pcm)
29729{
29730 msm_pcm_routing_hwdep_free(pcm);
29731}
29732
Meng Wangee084a02018-09-04 16:11:58 +080029733static struct snd_soc_component_driver msm_soc_routing_component = {
29734 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029735 .ops = &msm_routing_pcm_ops,
29736 .probe = msm_routing_probe,
29737 .pcm_new = msm_routing_pcm_new,
29738 .pcm_free = msm_routing_pcm_free,
29739};
29740
29741static int msm_routing_pcm_probe(struct platform_device *pdev)
29742{
29743
29744 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080029745 return snd_soc_register_component(&pdev->dev,
29746 &msm_soc_routing_component,
29747 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029748}
29749
29750static int msm_routing_pcm_remove(struct platform_device *pdev)
29751{
Meng Wangee084a02018-09-04 16:11:58 +080029752 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029753 return 0;
29754}
29755
29756static const struct of_device_id msm_pcm_routing_dt_match[] = {
29757 {.compatible = "qcom,msm-pcm-routing"},
29758 {}
29759};
29760MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
29761
29762static struct platform_driver msm_routing_pcm_driver = {
29763 .driver = {
29764 .name = "msm-pcm-routing",
29765 .owner = THIS_MODULE,
29766 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080029767 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029768 },
29769 .probe = msm_routing_pcm_probe,
29770 .remove = msm_routing_pcm_remove,
29771};
29772
29773int msm_routing_check_backend_enabled(int fedai_id)
29774{
29775 int i;
29776
29777 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
29778 /* bad ID assigned in machine driver */
29779 pr_err("%s: bad MM ID\n", __func__);
29780 return 0;
29781 }
29782 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29783 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
29784 return msm_bedais[i].active;
29785 }
29786 return 0;
29787}
29788
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029789static int get_cal_type_index(int32_t cal_type)
29790{
29791 int ret = -EINVAL;
29792
29793 switch (cal_type) {
29794 case ADM_TOPOLOGY_CAL_TYPE:
29795 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
29796 break;
29797 case ADM_LSM_TOPOLOGY_CAL_TYPE:
29798 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
29799 break;
29800 default:
29801 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
29802 }
29803 return ret;
29804}
29805
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029806static int msm_routing_set_cal(int32_t cal_type,
29807 size_t data_size, void *data)
29808{
29809 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029810 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029811 pr_debug("%s\n", __func__);
29812
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029813 cal_index = get_cal_type_index(cal_type);
29814 if (cal_index < 0) {
29815 pr_err("%s: Could not get cal index %d\n",
29816 __func__, cal_index);
29817 ret = -EINVAL;
29818 goto done;
29819 }
29820
29821 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029822 if (ret < 0) {
29823 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
29824 __func__, ret, cal_type);
29825 ret = -EINVAL;
29826 goto done;
29827 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029828 /* Pre-load if it is ADM topology */
29829 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
29830 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
29831 msm_routing_load_topology(data_size, data);
29832 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029833done:
29834 return ret;
29835}
29836
29837static void msm_routing_delete_cal_data(void)
29838{
29839 pr_debug("%s\n", __func__);
29840
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029841 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029842}
29843
29844static int msm_routing_init_cal_data(void)
29845{
29846 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029847 struct cal_type_info cal_type_info[] = {
29848 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029849 {NULL, NULL, NULL,
29850 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029851 {NULL, NULL, cal_utils_match_buf_num} },
29852
29853 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
29854 {NULL, NULL, NULL,
29855 msm_routing_set_cal, NULL, NULL} },
29856 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029857 };
29858 pr_debug("%s\n", __func__);
29859
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029860 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
29861 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029862 if (ret < 0) {
29863 pr_err("%s: could not create cal type!\n",
29864 __func__);
29865 ret = -EINVAL;
29866 goto err;
29867 }
29868
29869 return ret;
29870err:
29871 msm_routing_delete_cal_data();
29872 return ret;
29873}
29874
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053029875int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029876{
29877 mutex_init(&routing_lock);
29878 if (msm_routing_init_cal_data())
29879 pr_err("%s: could not init cal data!\n", __func__);
29880
29881 afe_set_routing_callback(
29882 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
29883
29884 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29885 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
29886
29887 return platform_driver_register(&msm_routing_pcm_driver);
29888}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029889
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053029890void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029891{
29892 msm_routing_delete_cal_data();
29893 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29894 mutex_destroy(&routing_lock);
29895 platform_driver_unregister(&msm_routing_pcm_driver);
29896}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029897
29898MODULE_DESCRIPTION("MSM routing platform driver");
29899MODULE_LICENSE("GPL v2");